我试图通过按键事件上下移动PictureBox(picUser)。我是C#的新手,我能够通过VB实现这一点。因此,我对以下代码的问题感到困惑:
private void picUser_keyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.W)
{
picUser.Top -= 10;
}
}
代码没有“错误”,图片框不会移动。
答案 0 :(得分:6)
PictureBox
没有KeyDown
个事件。它的格式为PreviewKeyDown
,需要PictureBox
才能获得焦点。
我建议您使用托管KeyDown
的{{1}}的{{1}},并使用相同的代码:
form
答案 1 :(得分:2)
它可能无效,因为picUser
没有焦点,因此没有收到任何关键事件。
如果picUser
有焦点,那么您的代码应该有效。但是,更好的方法是将表单的KeyPreview
属性设置为true
,然后将上面的代码放入表单的 keyDown
事件中(并设置{ {1}}也可以防止将键事件传递给任何具有焦点的控件。