将多个键绑定到KeyDown事件(Shift + *(星号)) [英] Bind multiple keys to KeyDown event (Shift + * (Asterisk))

查看:289
本文介绍了将多个键绑定到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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆