C#中的按键事件 - 移动PictureBox

ban*_*unk 3 c# winforms

我试图通过按键事件上下移动PictureBox(picUser).我是C#的新手,我能够通过VB实现这一点.因此,我对以下代码的问题感到困惑:

    private void picUser_keyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
        if (e.KeyCode == Keys.W)
        {
            picUser.Top -= 10;
        }
    }
Run Code Online (Sandbox Code Playgroud)

代码没有"错误",图片框不会移动.

Lar*_*rry 6

A PictureBox没有KeyDown事件.它有一个PreviewKeyDown反而需要PictureBox有焦点.

我会建议使用KeyDown的的form的主机PictureBox代替,并使用相同的确切的代码:

public Form1()
{
     InitializeComponent();
     this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
}

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
     if (e.KeyCode == Keys.W)
     {
         picUser.Top -= 10;
     }
}
Run Code Online (Sandbox Code Playgroud)