form schließt nicht
-
int Form1 rufe ich Form2 auf:
Form2 f2 = new Form2(); f2.ShowDialog();
in Form2 möchte ich bei druck auf escapetaste die Form2 schließen:
private void Form2_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 27) Close(); }
auch mit
private void Form2_Load(object sender, EventArgs e) { this.Activate(); }
funzt net.
mit
private void Form2_KeyPress(object sender, KeyPressEventArgs e) { MessageBox.Show("hallo"); }
habe ich festgestellt, das überhaupt kein tastendruck abgefangen wird.
ideen?
-
keypreview war false. danke fürs vorbeischauen!
-
Wenn du auch einen "Abbrechen"-Button auf dem Formular hast, kannst du auch einfach Form.CancelButton setzen (dann wird mit Escape auch dieser Button aktiviert - und wenn der DialogResult auch noch auf Cancel steht, hast du auch gleich den richtigen Rückgabewert für den Aufruf von ShowDialog).
Analoges gilt dann für einen "OK"-Button und der "Return"-Taste bei Benutzung von Form.AcceptButton...
-
ja, der accept button ist ne feine sache!