KeyDown Event geht nicht immer
-
Hallo zusammen,
mit folgendem Code versuche ich auf die Shift-Taste den Dialog (die Form) zu schließen:
private void Dlg_KeyDown(object sender, KeyEventArgs e) { if (e.Shift) { this.Close(); } }
Nun besteht meine kleine Anwendung aus mehreren Forms die über verschiedene Schaltflächen angezeigt werden können. Nun funktioniert das Schließen über Shift zwar manchmal bzw. beui manchen Dialogen, aber nicht immer. Ich habe aber bei jedem Dialig im Designer über das Kontextmenü die Properties aufgerufen und bei der MEldung KeyDown eine Funktion hinterlegt Diese sieht dann bis auf den Namen gleich aus. Woran kann es liegen, dass es in manchen Dialogen funktioniert und in manchen nicht?
Irgendein Focus, der auf einem Steuerelement liegt, was kein KeyDown abfangen kann (z.B. Buttons) oder irgend sowas?VG,
Ranger
-
Hast du bei den Forms auch immer KeyPreview auf 'true' gesetzt?
PS: Die Shift-Taste ist eigentlich nur ein 'ModifierKey', d.h. nur in Verbindung mit anderen Tasten gültig und sollte nicht als eigene Taste angesehen und abgefragt werden. Nimm doch besser die 'ESC'-Taste.
Sobald du TextBoxen, Shortcut-Keys o.ä. hast, kommst du (bzw. der Anwender!) eh in Schwierigkeiten...