Probleme mit Focus und Toolbar Buttons


Thomas Wölfer
Thomas Wölfer

05. September 2006


Angenommen man hat ein Fenster und Unterfenster wie zum Beispiel nicht-modale Dialoge. Im Hauptfenster gibt es ein ToolStrip Control mit Buttons drin. Wenn man nun ein Unterfenster aktiviert und dann mit der Maus über die Buttons im ToolStrip des Hauptfensters fährt, dann reagieren die auf die Mausbewegung: Der Button, der sich jeweils unter der Maus befindet, wird umgefärbt.

Das erweckt den Eindruck, das die Werkzeugleiste im ganz normalen Betrieb ist - das stimmt aber nicht. Wenn man klickt, dann wird der zum Button gehörende Befehl nicht ausgeführt; der Button bekommt nicht mal einen Click-Event. Statt dessen wird einfach nur das Hauptfenster aktiviert und bekommt Fokus. Um den Button tatsächlich anzuklicken, muss man also 2 mal klicken.

Lösung: Im Hauptfenster behandelt man das Activated Event und sucht dabei im eigenen ToolStrip nach einem Item, das "Selected" ist. Gibts so ein Item, ruft man dessen PerformClick() Methode auf.