Malce sem že pogledal "naokoli" za rešitev v bistvu neumnega, vendar nadležnega problema.
Na VB in C# prehajam z Delfija, kjer je ta problem elegantno rešen.
Na obrazec sem dal Statusno vrstico (Status1), znotraj nje statusno labelo in ToolTip gradnik (ToolTip1). Na obrazec sem dodal še za vajo dva gumba in labelo in vsem trem dodal lastnost za ToolTip (namig). Napisal sem odzivnik Popup za ToolTip1, v katerega sem zapisal:
Status1.text=ToolTip1.GetToolTip(Me.activecontrol)
Rezultati so nepredvidljivi. Ugledal sem samo namig za prvo od kontrol in ta je ostal za vekomaj. rešitev s pisanjem odzivnikom za MouseMove in MouseLeave za vsako od kontrol na obrazcu se mi zdi neoptimalna. Z razhroščevalnikom sem ugotovil, da odzivnik PopUp gradnika ToolTip "zamrzne" na vrdnosti Me.ActiveControl prve, na obrazec postavljene kontrole. "Večno" ostane aktivni objekt prvi iz seznama. Ko sem odstranil prvi gumb in postavil še enega, je posatl "večno" aktivni tisti drugi.
V čem je težava?
V Delfiju objektu Application pripišeš odzivnik OnHint in stvar dela že od daljnega leta 1996.
Na VB in C# prehajam z Delfija, kjer je ta problem elegantno rešen.
Na obrazec sem dal Statusno vrstico (Status1), znotraj nje statusno labelo in ToolTip gradnik (ToolTip1). Na obrazec sem dodal še za vajo dva gumba in labelo in vsem trem dodal lastnost za ToolTip (namig). Napisal sem odzivnik Popup za ToolTip1, v katerega sem zapisal:
Status1.text=ToolTip1.GetToolTip(Me.activecontrol)
Rezultati so nepredvidljivi. Ugledal sem samo namig za prvo od kontrol in ta je ostal za vekomaj. rešitev s pisanjem odzivnikom za MouseMove in MouseLeave za vsako od kontrol na obrazcu se mi zdi neoptimalna. Z razhroščevalnikom sem ugotovil, da odzivnik PopUp gradnika ToolTip "zamrzne" na vrdnosti Me.ActiveControl prve, na obrazec postavljene kontrole. "Večno" ostane aktivni objekt prvi iz seznama. Ko sem odstranil prvi gumb in postavil še enega, je posatl "večno" aktivni tisti drugi.
V čem je težava?
V Delfiju objektu Application pripišeš odzivnik OnHint in stvar dela že od daljnega leta 1996.
Avtor: Boki, objavljeno na portalu SloDug.si (Arhiv)
AndrejT - petek, 21. april 2006
Lahko poskusiš z e.AssociatedControl namesto Me.ActiveControl? [primer je v C# 2.0]: private void toolTip1_Popup(object sender, PopupEventArgs e){ status1.Text = toolTip1.GetToolTip(e.AssociatedControl);}