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!


Anmelden zum Antworten