我有一个带有按钮的 .NET 应用程序,它使用数字作为助记符。(例如“&1 - Check”和“&2 - Cash”)当我点击 Alt+1 时,我希望点击 Check 按钮。这在我使用键盘上的标准数字键时有效。但是,当我使用数字键盘按 Alt+1 时,Windows 会接管并插入与 1 的“alt 代码”匹配的符号。请参阅http://alt-codes.org/list/。如何防止这种情况在我的应用程序中发生?
谢谢!
我有一个带有按钮的 .NET 应用程序,它使用数字作为助记符。(例如“&1 - Check”和“&2 - Cash”)当我点击 Alt+1 时,我希望点击 Check 按钮。这在我使用键盘上的标准数字键时有效。但是,当我使用数字键盘按 Alt+1 时,Windows 会接管并插入与 1 的“alt 代码”匹配的符号。请参阅http://alt-codes.org/list/。如何防止这种情况在我的应用程序中发生?
谢谢!
这可以通过在表单上启用 KeyPreview 并处理 KeyUp 事件来完成。以下代码绕过了 Windows alt 代码功能,并在我按下 Alt+NumPad1 时导致按钮单击:
if (e.Alt && e.KeyCode == Keys.NumPad1)
{
e.Handled = true;
button1.PerformClick();
}
这个 Alt+numkey 组合是 Windows 的一项功能(非常有用),您无法绕过它。
前段时间我在玩游戏时尝试过这个(你知道......技能栏快捷方式?☺)并且我做了一些研究......这是不可能的。
我也很高兴看到解决办法!
一种可能的方法是使用键盘挂钩,拦截按键,然后按照您认为合适的方式行事。现在,它会解决上述问题,并阻止操作系统插入 charcode,我不知道。