使用箭头键
本文关键字: | 更新日期: 2023-09-27 18:00:08
我想要的是类似这个的东西
例如,按下箭头键,button1
执行点击的操作
ArrowKeyDown = button1.Click
,然后点击我的图像,在我的picturebox
中移动。上行right
和left
也是如此。
从按钮1中获取所有代码。单击并将其放入一个单独的函数中。
然后你可以从你的按钮调用函数1.点击和你的按键按下事件。
在键down中,您必须使用if语句和e.KeyCode来确保在调用子例程之前使用正确的键。
如果你的代码看起来像这个
private void button1_Click(object sender, EventArgs e)
{
//do something here
}
它现在将更像这个
private void doSomething()
{
//do something here
}
private void button1_Click(object sender, EventArgs e)
{
doSomething();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
doSomething();
}
else if(e.keyCode==Keys.Right)
{
doSomethingElse();
}
//etc.etc
}
按键按下事件的另一种更干净的方法是使用切换语句
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Down:
doSomething();
break;
case Keys.Right:
//do Something Else
break;
case Keys.Up:
//do Something Else
break;
case Keys.Left:
//do Something Else
break;
default:
//they hit a key you did not handle
break;
}
}
您正在尝试使用Form.KeyPreview
,但在使用之前,您必须设置表单KeyPreview = true
的属性,并且您提到了Button Click
,您可以通过使用.PerformClick Method
来实现这一点
private void Form1_Load(object sender, EventArgs e)
{
this.KeyPreview = true;
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
button1.Click += new EventHandler(button1_Click);
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Left:
button1.PerformClick();
break;
case Keys.Right:
button1.PerformClick();
break;
case Keys.Down:
button1.PerformClick();
break;
case Keys.Up:
button1.PerformClick();
break;
}
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Okay");
}