将多个键绑定到KeyDown事件(Shift + *(星号)) [英] Bind multiple keys to KeyDown event (Shift + * (Asterisk))
本文介绍了将多个键绑定到KeyDown事件(Shift + *(星号))的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图在KeyDown事件上绑定多个键以更改bool变量,但是我似乎无法弄清楚如何使用以下代码中的Left Shift键触发星号/星号键(*):
I am trying to bind multiple keys on a KeyDown event to change a bool variable, but I can't seem to figure out how to trigger the asterisk/star key (*) with the Left Shift key in the following code:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Multiply || keyData == (Keys.LShiftKey | Keys.OemQuotes))
{
Valgt = true;
}
}
推荐答案
此答案不是键盘布局不变的,但这可以解决US-EN键盘的问题.它不可靠,但可以适应您的本地布局.
This answer will not be keyboard layout invariant but this would do the trick on a US-EN keyboard. It's not robust but can be adapted to your local layout.
if (keyData == Keys.Multiply || keyData == (Keys.Shift | Keys.D8))
{
Valgt = true;
}
或者您可以使用Control_KeyPress事件
Alternatively you can use Control_KeyPress event
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '*')
{
Valgt = true;
}
}
这篇关于将多个键绑定到KeyDown事件(Shift + *(星号))的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文