| Author |
Message
|
szczepikrybnik Poziom 12

Joined: 31 Mar 2003 Posts: 82 Location: Rybnik/Dabrowa Górnicza
|
#1
27 Dec 2011 09:28 [C#] TollTip - wyświetlanie podpowiedzi w zalezności od zawartości obiektu |
|
|
|
Witam,
używam toolTip do wyświetlenia podpowiedzi (np. po najechaniu na label-a), ale chciałbym by pomoc wyświetlona była tylko w niektórych przypadkach, np gdyby label wyświetlał tekst "111" a w innych nie, czy jest jakiś konkretny sposób by to uczynić?
z góry dziękuję za pomoc, pozdrawiam
|
|
| Back to top |
|
 |
Google

|
#
27 Dec 2011 09:28 |
|
|
|
|
|
| Back to top |
|
 |
wiesniak Poziom 19

Joined: 21 Apr 2003 Posts: 771 Location: Gliwice
|
#2
27 Dec 2011 11:47 Re: [C#] TollTip - wyświetlanie podpowiedzi w zalezności od zawartości obiektu |
|
|
|
Dość specyficzny problem. Chyba najprościej byłoby stworzyć własną klasę dziedziczącą po ToolTip, która w momencie łączenia z kontrolką przypinała by się do zdarzenia TextChanged labela. Przy zmianie tekstu, wyświetlanie podpowiedzi byłoby włączanie lub wyłączane z wewnątrz klasy.
|
|
| Back to top |
|
 |
Google

|
#
27 Dec 2011 11:47 |
|
|
|
|
|
| Back to top |
|
 |
marcinj12 Poziom 22

Joined: 14 Feb 2005 Posts: 1658 Location: Wrocław
|
#3
27 Dec 2011 14:56 Re: [C#] TollTip - wyświetlanie podpowiedzi w zalezności od zawartości obiektu |
|
|
|
Możesz w metodzie która powoduje zmianę tekstu na labelu programowo ustawiać tekst do wyświetlenia metodą toolTip1.SetToolTip(...) lub go wyłączać "ustawiając" pusty ciąg znaków.
Jeżeli warunków jest więcej, możesz napisać własną metodę, którą wywołasz po wykonaniu metody zmieniającej teksty, a która sprawdzi i ustawi wszystkie podpowiedzi automatycznie, zależnie od warunków.
Wreszcie, Tooltip ma zdarzenie Popup, wykonywane w momencie "wyskakiwania" podpowiedzi. Wewnątrz niego możesz odwołać się do powiązanej kontrolki (nazwy, tekstu). Podobnie jak zamykanie formy, można je odpowiednio wcześniej przechwycić i anulować.
Czyli możesz zrobić coś w tym stylu:
private void toolTip1_Popup(object sender, PopupEventArgs e) { if (e.AssociatedControl.Text != "111") e.Cancel = true; }
Kombinacją warunków if lub switch dla e.AssociatedControl.Name i e.AssociatedControl.Text można rozbudować system podpowiedzi według własnych oczekiwań...
|
|
| Back to top |
|
 |
Google

|
#
27 Dec 2011 14:56 |
|
|
|
|
|
| Back to top |
|
 |
szczepikrybnik Poziom 12

Joined: 31 Mar 2003 Posts: 82 Location: Rybnik/Dabrowa Górnicza
|
#4
28 Dec 2011 10:23 Re: [C#] TollTip - wyświetlanie podpowiedzi w zalezności od zawartości obiektu |
|
|
|
Witam,
dziękuję za pomoc, pojawił mi się niestety jeszcze jeden problem, a mianowicie
w miejscu gdzie zmieniam tekst przypisuje "opis pomocy"
toolTip1.SetToolTip(label1, "tekst etykiety to 111");
i wszystko jest ok, ale gdy minie czas przeznaczony na wyświetlenie pomocy pomoc znika i po kolejnym najechaniu na labela juz sie nie pojawia, jeżeli w trakcie wyświetlania zjadę myszką na inna część formy i powrócę na labela to pomoc ponownie sie pojawi, pewnie o czymś nie wiem , więc ponownie liczę na pomoc,
pozdrawiam.
|
|
| Back to top |
|
 |
marcinj12 Poziom 22

Joined: 14 Feb 2005 Posts: 1658 Location: Wrocław
|
#5
28 Dec 2011 13:41 Re: [C#] TollTip - wyświetlanie podpowiedzi w zalezności od zawartości obiektu |
|
|
|
To bug występujący w Windows XP (w Win7 oraz w Viście już nie występuje). Jedynym sensownym sposobem na jego obejście jest podpięcie do labela zdarzenia MouseEnter z takim kodem:
private void label1_MouseEnter(object sender, EventArgs e) { toolTip1.Active = false; toolTip1.Active = true; }
Ewentualnie można wydłużyć czas wyświetlania podpowiedzi AutoPopDelay na maksymalną wartość, bodaj 30000 (30s.)
|
|
| Back to top |
|
 |
Google

|
#
28 Dec 2011 13:41 |
|
|
|
|
|
| Back to top |
|
 |
szczepikrybnik Poziom 12

Joined: 31 Mar 2003 Posts: 82 Location: Rybnik/Dabrowa Górnicza
|
#6
02 Feb 2012 09:23 Re: [C#] TollTip - wyświetlanie podpowiedzi w zalezności od zawartości obiektu |
|
|
|
problem rozwiązany więc temat zamykam, pozdrawiam.
|
|
| Back to top |
|
 |