【发布时间】:2010-04-16 11:43:11
【问题描述】:
我有一个 WPF 表单。它处理KeyUp 事件,如果释放的键是Escape,它会自行关闭。
此表单还有一个按钮,可将某些 Windows 表单显示为对话框。它确实以相同的方式处理 Escape 键。
发生的情况是,当我在子对话框中按 Escape 时,两个窗口都会关闭。在这种情况下,我希望只有子 Windows 窗体窗口会关闭。
处理这个问题的正确方法是什么?
【问题讨论】:
我有一个 WPF 表单。它处理KeyUp 事件,如果释放的键是Escape,它会自行关闭。
此表单还有一个按钮,可将某些 Windows 表单显示为对话框。它确实以相同的方式处理 Escape 键。
发生的情况是,当我在子对话框中按 Escape 时,两个窗口都会关闭。在这种情况下,我希望只有子 Windows 窗体窗口会关闭。
处理这个问题的正确方法是什么?
【问题讨论】:
WPF 最简单的选项是将按钮属性IsCancel 设置为true。然后,如果您按ESC,表单将被关闭。
【讨论】:
尝试将 KeyUp 事件的处理属性设置为 true:
private void myDialogForm_KeyUp(object sender, KeyEventArgs e)
{
e.Handled = true;
}
【讨论】: