Entwickler-Ecke
WinForms - Button ausgrauen und mit tooltip versehen
wasabi - Mi 23.03.11 11:19
Titel: Button ausgrauen und mit tooltip versehen
Hi,
ich habe das Problem, dass ein ausgegrauter Button (Button.Enable = false) sich nicht mit einem Tooltip versehen lässt, bzw. dieser nicht angezeigt wird wenn der Button "ausgegraut" ist.
Ziel ist, dass der User weiss was er tun muss um den Button zu aktivieren.
Kann mir da jemand eine elegante Lösung ausführlich erklären? Ich hab schon mit ner PictureBox experimentiert das aber nicht hinbekommen.
Grüße
Wasabi
bakachan - Mi 23.03.11 12:04
Wenn der Button nicht Enabled ist löst er auch keine Events mehr aus so viel ist klar.
Was mir jetzt an Lösungen einfällt ist aber auch nicht wirklich elegant:
a) Den Enabled nicht auf false setzen sondern nur den Clickeventhandler vom Clickevent des Buttons lösen (und eventuell den Style des Buttons anpassen damit mans auch sieht).
b) Beim MouseLeave-Event des Parentcontrols könnte man über die MousePosition überprüfen ob die Maus über einen deaktivierten Button ist und dann den Tooltip selbst anzeigen.
Horschdware - Mi 23.03.11 12:09
Alternativ würde mir noch ein Kunstgriff einfallen:
Beim Disabled-Setzen des Buttons eine Transparente Komponente über den Button legen und deren Event nutzen.
Ich meine mich aber daran erinnern zu können, vor Urzeiten mal eine "Popup- und Hilfen-Komponente" genutzt zu haben, die auch diese Hints für deaktivierte Controls möglich machte. Das hatte wenn mich nicht alles täuscht mit den Komponenten des Programms "Help and Manual" zu tun.
Vllt kann man sich ja abgucken, wie die das machen?
wasabi - Mi 23.03.11 12:59
bakachan hat folgendes geschrieben : |
a) Den Enabled nicht auf false setzen sondern nur den Clickeventhandler vom Clickevent des Buttons lösen (und eventuell den Style des Buttons anpassen damit mans auch sieht).
|
wie genau würde diese Variante denn aussehen?
wie löse den Clickeventhandler vom Clickevent?
Mfg
Wasabi
bakachan - Mi 23.03.11 13:07
ähnlich wie man einen Eventhändler anhängt nur mit einem - anstelle eines +
also:
C#-Quelltext
1:
| button1.Click -= new EventHandler(button1_Click); |
jaenicke - Mi 23.03.11 13:11
Das würde ich aber nicht machen, denn niemand rechnet damit, dass ein Button deaktiviert ist, wenn er nicht so aussieht.
wasabi - Mi 23.03.11 14:10
Ok soweit klappt das mal.
Jetzt würde ich halt gerne noch den Button "ausgrauen"
1) Die Schrift des Buttons ist kein Problem
2) Wenn ich die Maus über den Button ziehe, dann wird der Button "blau" umrandet wie verhindere ich das? welche Eigenschaft muss ich diesbzgl. anpassen?
Mfg
Wasabi
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!