Hi Folks,
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. 😦
1.Warum ist das so?
Die Escape-Taste sollte vom OpenFileDialog längst als Handled gekennzeichnet sein.
1.Wie kann ich in diesem Fall in OnKeyUp unterscheiden, dass der Sender nicht Form A selbst war? oder 1.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.
Ich denke es liegt am KeyUp, denn der File-Dialog wird ja schon beim Escape-KeyDown geschlossen...
P.S. Erst wollte ich dir auch CancelButton empfehlen -)
Danke th
klingt nicht nur logisch, ist es auch: Problem gelöst. 😃