我现在需要在一个button里判断有没有按下组合键ctrl+shift+right,没有实现,
form里只有一个button,
代码是这样的:
private void button1_Click(object sender, EventArgs e)
{
keybd_event(0x11, 0, 0, 0); //按下ctrl
keybd_event(0x10, 0, 0, 0); //按下shift
keybd_event(0x27, 0, 0, 0); //按下right
keybd_event(0x27, 0, 2, 0); //抬起right
keybd_event(0x10, 0, 2, 0); //抬起shift
keybd_event(0x11, 0, 2, 0); //抬起ctrl
}
private void button1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.Shift && e.KeyCode == Keys.Right)
this.BackColor = Color.Red;
}
调试时if语句里的条件总是FALSE,
但是组合键ctrl+shift+A就能实现,
private void button1_Click(object sender, EventArgs e)
{
keybd_event(0x11, 0, 0, 0); //按下ctrl
keybd_event(0x10, 0, 0, 0); //按下shift
keybd_event(0x41, 0, 0, 0); //按下A
keybd_event(0x41, 0, 2, 0); //抬起A
keybd_event(0x10, 0, 2, 0); //抬起shift
keybd_event(0x11, 0, 2, 0); //抬起ctrl
}
private void button1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.Shift && e.KeyCode == Keys.A)
this.BackColor = Color.Red;
}
这样就能实现ctrl+shift+A,
请问是什么原因不能实现ctrl+shift+right呢?
3Q!
form里只有一个button,
代码是这样的:
private void button1_Click(object sender, EventArgs e)
{
keybd_event(0x11, 0, 0, 0); //按下ctrl
keybd_event(0x10, 0, 0, 0); //按下shift
keybd_event(0x27, 0, 0, 0); //按下right
keybd_event(0x27, 0, 2, 0); //抬起right
keybd_event(0x10, 0, 2, 0); //抬起shift
keybd_event(0x11, 0, 2, 0); //抬起ctrl
}
private void button1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.Shift && e.KeyCode == Keys.Right)
this.BackColor = Color.Red;
}
调试时if语句里的条件总是FALSE,
但是组合键ctrl+shift+A就能实现,
private void button1_Click(object sender, EventArgs e)
{
keybd_event(0x11, 0, 0, 0); //按下ctrl
keybd_event(0x10, 0, 0, 0); //按下shift
keybd_event(0x41, 0, 0, 0); //按下A
keybd_event(0x41, 0, 2, 0); //抬起A
keybd_event(0x10, 0, 2, 0); //抬起shift
keybd_event(0x11, 0, 2, 0); //抬起ctrl
}
private void button1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.Shift && e.KeyCode == Keys.A)
this.BackColor = Color.Red;
}
这样就能实现ctrl+shift+A,
请问是什么原因不能实现ctrl+shift+right呢?
3Q!
{
this.BackColor = Color.Red;
}