DyS*_*SoS 3 c# keyboard-shortcuts keyboard-hook winforms
我正在使用C#
并Windows Forms
希望将Ctrl+"Oemplus"
其key
用作我的应用程序的功能.我使用a German keyboard
,这个键位于字母P右侧的2个键(即"+").每当我按下这个键Ctrl
并且焦点在一起时,TextBox
我就会发出一声哔哔声.
当我切换到US keyboard
布局(仍然使用我的German keyboard
)时也会发生这种情况.这就是] key
.
在Internet Explorers
地址栏中按此键时也会发生同样的情况.我的问题是:
感谢您为此付出的任何努力.
更新:
我在美国/泰国键盘上试了一下,也发出了哔哔声.无论我使用什么逻辑键盘布局(德语,美国,泰国),都会发生这种情况.
蜂鸣声也发生在地址栏中的Windows资源管理器中,但不会出现在搜索框中.
当你按下按键时,你很希望发生什么.TextBox对它毫无疑问,它是BEEP!因为它可以看到用户正在尝试做一些特别的事情,但它并不确切知道是什么.发牢骚的好理由.解决方案是在下一个片段的// ..注释中实现魔术.使用额外的代码来结束最后的哔声:
private void textBox1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyData == (Keys.Control | Keys.Oemplus)) {
// Invoke magic
//...
// Magic is done now:
e.Handled = e.SuppressKeyPress = true;
}
}
Run Code Online (Sandbox Code Playgroud)