Laden...

[erledigt] Event gesucht für Click außerhalb des Controls

Erstellt von Stefan.Haegele vor 14 Jahren Letzter Beitrag vor 14 Jahren 7.677 Views
Stefan.Haegele Themenstarter:in
463 Beiträge seit 2009
vor 14 Jahren
[erledigt] Event gesucht für Click außerhalb des Controls

Guten Morgen,

ich steh gerade etwas auf den Schlauch: Mit welchen Event kann ich prüfen, ob mit der Maus **außerhalb **des Controls geclickt wurde (Click und Doubleclick)?

Danke
Stefan

J
1.114 Beiträge seit 2007
vor 14 Jahren

Was hat der Bereich ausserhalb deines Controls (deines Buttons) mit dem Control selbst zu tun?

Wenn ausserhalb des Controls geklickt wird, so fang das Event doch einfach im Container ab (Form, Panel etc.).

T
381 Beiträge seit 2009
vor 14 Jahren

Du kannst systemweite Maus und Tastaturevents abfangen.

Suche mal nach dem Stichwort Hook.

Ich benutzte in meinem aktuellen Programm diese Bibliothek dafür. Ich glaub die ist von CodeProject und ein wenig verbessert von mir.


[assembly: AssemblyTitle("GlobalHook")]
[assembly: AssemblyDescription("This class library contains components which monitor all mouse and keyboard activities globally (also outside of the application) and provides appropriate events.")]
[assembly: AssemblyCompany("George Mamaladze, Tobias Kaupat")]
[assembly: AssemblyProduct("GlobalHook")]
[assembly: AssemblyCopyright("Free to use, copy, modify and redistribute")]

Stefan.Haegele Themenstarter:in
463 Beiträge seit 2009
vor 14 Jahren

Was hat der Bereich ausserhalb deines Controls (deines Buttons) mit dem Control selbst zu tun?

Wenn ausserhalb des Controls geklickt wird, so fang das Event doch einfach im Container ab (Form, Panel etc.).

Richtig - ich möchte jedoch, dass analog einer ComboBox eine Form geschlossen wird, wenn ausßerhalb der Form geclickt wird!

T
381 Beiträge seit 2009
vor 14 Jahren

Mit dem Global kannst du alle Klicks abfangen und checken ob sie im oder außerhalb dem Bereich deiner Form waren.

Ansonsten kann man vielleicht noch auf den Focus des Programmes zugreifen, der müsste verloren gehen wenn du außerhalb klickst.

1.665 Beiträge seit 2006
vor 14 Jahren

ich möchte jedoch, dass analog einer ComboBox eine Form geschlossen wird, wenn ausßerhalb der Form geclickt wird!

Dafür gibt es das Deactivate Event der Form, auf der sich die ComboBox befindet. Wird das Event ausgelöst, weißt du, dass wohl außerhalb der Form geklickt worden ist.
Das ist eine viel saubere Lösung.

479 Beiträge seit 2008
vor 14 Jahren

Hallo,

sonst wär Control.Parent auch eine Möglichkeit, aber wie JunkyXL bereits sagte ist das Deaktivate Event eine sauberere Lösung.

mfg.
markus111

[Follow me on Twitter](http://twitter.com/blendingsky)
Stefan.Haegele Themenstarter:in
463 Beiträge seit 2009
vor 14 Jahren

Dafür gibt es das Deactivate Event der Form, auf der sich die ComboBox befindet. Wird das Event ausgelöst, weißt du, dass wohl außerhalb der Form geklickt worden ist.
Das ist eine viel saubere Lösung.

Super vielen Dank - genau das wars.

Stefan