如何在 WPF/WinForms 中仅关闭 ESC 键上的单个对话框?

发布于 2024-08-29 03:20:53 字数 225 浏览 8 评论 0原文

我有一个 WPF 表单。它处理 KeyUp 事件,如果释放的键是 Escape,它会自行关闭。

此窗体还有一个按钮,用于将某些 Windows 窗体显示为对话框。它确实以相同的方式处理 Escape 键。

发生的情况是,当我在子对话框中按 Esc 键时,两个窗口都会关闭。我希望在这种情况下只有子 Windows 窗体窗口会关闭。

处理这个问题的正确方法是什么?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

若相惜即相离 2024-09-05 03:20:53

WPF 最简单的选项是将按钮属性 IsCancel 设置为 true。然后,如果您按ESC,表单将关闭。

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

深府石板幽径 2024-09-05 03:20:53

尝试将 KeyUp 事件的 Handling 属性设置为 true:

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

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

private void myDialogForm_KeyUp(object sender, KeyEventArgs e)
{
    e.Handled = true;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文