c# - C# 中用于系统键的 KeyDown 事件

标签 c# xaml keydown eventhandler

我正在 try catch 任何 KeyDown 事件,而不管哪个项目具有焦点。我的构造函数中有以下代码:

Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown;

我的功能在这里:

void CoreWindow_KeyDown(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args)
{
    //Stuff in here
}

这适用于常规键(箭头、字母)但不会接收特殊键(如 EnterTab)的事件。

如何拦截 EnterTab 按键事件并阻止系统处理它?无论焦点是什么对象,我都需要始终获取事件。

最佳答案

处理 key 的过程相当复杂。 KeyDown 实际上在这个过程中已经很晚了,并且不包括“控制”键。要获得这些键,您需要覆盖 IsInputKey(对于 Tab 和 Control 键)或 ProcessDialogKey(对于箭头键)。在这里查看一些优秀的文档 https://msdn.microsoft.com/en-us/library/vstudio/ms171535%28v=vs.100%29.aspx

关于c# - C# 中用于系统键的 KeyDown 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32524773/

相关文章:

javascript - 发生 'mouseout' 时无法删除 EventListener

c# - C# 中的编程式 XML 差异/合并

c# - 锁定数据库,使用 C#

c# - 如何围绕私有(private)方法编写单元测试

xaml - Telerik:raddatetimepicker SelectedDateChanged 事件不起作用

c# - 如何使用 C# 在 LAN 中查找可用的 IP 地址

javascript - jQuery:在 keydown 处理程序中获取新值

c# - finally 之前的 return 语句

c# - 无法将 cellValuePresenter/TypeConverter 应用于 XamDataGrid 单元格

javascript - 按清除按钮后计算器键盘输入显示困惑