Mikhail Orlov
Mikhail Orlov

Reputation: 2857

How to close only single dialog on ESC key in WPF/WinForms?

I have a WPF form. It handles the KeyUp event and if the released key was Escape, it closes itself.

Also this form has a button to show some Windows Form as a dialog. It does handle the Escape key in the same way.

What happens is that when I press Escape when in the child dialog, both windows close. I expect only the child Windows Forms window to close in this case.

What's the proper way to handle this?

Upvotes: 5

Views: 6237

Answers (2)

akrisanov
akrisanov

Reputation: 3214

The easiest option for WPF is set the button property IsCancel to true. Then if you press ESC the form would be closed.

Upvotes: 13

Seth Moore
Seth Moore

Reputation: 3545

Try setting the KeyUp event's handled property equal to true:

private void myDialogForm_KeyUp(object sender, KeyEventArgs e)
{
    e.Handled = true;
}

Upvotes: 1

Related Questions