使用箭头键

本文关键字: | 更新日期: 2023-09-27 18:00:08

我想要的是类似这个的东西

例如,按下箭头键button1执行点击的操作

ArrowKeyDown = button1.Click,然后点击我的图像,在我的picturebox中移动。上行rightleft也是如此。

使用箭头键

从按钮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");
    }
相关文章:
  • 没有找到相关文章