C#中怎么获取组合键?比如A+B同时按下才能激发事件?

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:42:24
C#中怎么获取组合键?比如A+B同时按下才能激发事件?
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode=Keys.A&&e.KeyCode=Keys.B)
{
MessageBox.Show("ssssssssssss");
}
}

用&&不管用啊?????
请高手指教!!!

if (e.KeyCode == Keys.A && e.KeyCode == Keys.B)
更正一下,等于应该是“==”,不是“=”,“=” 这个是赋值的意思,

亏你也想的出,【e.KeyCode】怎么可能同时等于【Keys.A】和【Keys.B】呢?这样的条件打死也不可能成立,就好比下面的一样:
int a;
if(a == 1 && a == 2)
{
}
无论怎样,都不可能成立,因为a不可能既等于1又等于2,那你还不如这样写:
if(false)
{
}

不是所有的组合键winform都支持,winform目前只支持ctrl、alt,shift等组合键,代码如下:
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.Modifiers == Keys.Control && e.KeyCode == Keys.A)MessageBox.Show("Ctrl + A");
}

你要做游戏么?如果要支持形如【A + B】这样的组合键,要用directinput,或者有个投机取巧的办法也可以实现:
bool A = false;
bool B = false;

KeyDown事件,按下A键:
A = true;

KeyUp事件,放开A键:
A = false;

判断按下状态就相当于组合键:
if(A && B)
{
}

如果一个组合键和一个字符键可以直接用&&
private void textbox_KeyDown(object sender, KeyEventArgs e)
{
// 如果按下组合键CTRL+R