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

6.1k Views Asked by At

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?

2

There are 2 best solutions below

0
On BEST ANSWER

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

0
On

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

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