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

时间:2011-05-10 20:41:45

标签: 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;
        }
    }

代码没有“错误”,图片框不会移动。

2 个答案:

答案 0 :(得分:6)

PictureBox没有KeyDown个事件。它的格式为PreviewKeyDown,需要PictureBox才能获得焦点。

我建议您使用托管KeyDown的{​​{1}}的{​​{1}},并使用相同的代码:

form

答案 1 :(得分:2)

它可能无效,因为picUser没有焦点,因此没有收到任何关键事件。

如果picUser有焦点,那么您的代码应该有效。但是,更好的方法是将表单的KeyPreview属性设置为true,然后将上面的代码放入表单的 keyDown事件中(并设置{ {1}}也可以防止将键事件传递给任何具有焦点的控件。