in einem Form A überschreibe ich OnKeyUp; insbesondere soll hier Escape das Form A schliessen.
Von Form A aus rufe ich ein OpenFile-Dialog auf:
private void OpenFile()
{
if (openFileDialog.ShowDialog(this) == DialogResult.OK)
{
FileName = openFileDialog.FileName;
...
}
}
Wenn der Benutzer aber die Escape-Taste verwendet, um diesen modalen Dateidialog zu schliessen, wird hinterher zusätzlich noch das OnKeyUp-Ereignis von Form A durchlaufen.
Das führt natürlich dazu, dass sowohl der OpenFileDialog als auch Form A geschlossen werden. :-(
- Warum ist das so?
Die Escape-Taste sollte vom OpenFileDialog längst als Handled gekennzeichnet sein. - Wie kann ich in diesem Fall in OnKeyUp unterscheiden, dass der Sender nicht Form A selbst war? oder
- Wie kann ich in OpenFile() selbst die Tastaturwarteschlange leeren oder um Escape erleichtern?
Danke für Eure Hilfe
ron
PS: Um es gleich vorwegzunehmen:
Die Eigenschaften CancelButton und AccepptButton des Formulares scheiden für meine Bedürfnisse aus; die Schalter sind Fremdkomponenten, die vom Compiler nicht als gültige Werte dieser Eigenschaften anerkannt werden.