C#中的按键事件--移动图片框
我试图通过按键事件上下移动PictureBox(picUser)。我是C#的新手,并且能够通过VB完成这项工作。因此,我对以下代码的问题感到困惑:C#中的按键事件--移动图片框,c#,winforms,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; }
private void picUser_keyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.W)
{
picUser.Top -= 10;
}
}
代码没有“错误”,picturebox只是不移动。它可能不工作,因为
picUser
没有焦点,因此不会接收任何按键事件
如果
picUser
具有焦点,您的代码应该可以工作。但是,更好的方法可能是将表单的KeyPreview
属性设置为true
,然后将上面的代码放入表单的keyDown
事件中(同时设置e.Handled=true
,以防止键事件传递给具有焦点的控件).APictureBox
没有KeyDown
事件。它有一个PreviewKeyDown
,需要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;
}
}
也许你可以描述问题或提供错误日志?很好。我忘了在代码块后添加那个部分。已经进行了调整