2016-07-07 105 views
0

我使用表单事件Form1_KeyDown移动panelcontrol4不能火灾事件key_down的C#

Private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Left) 
    { 
     panelControl4.Location = new Point(panelControl4.Location.X-1,panelControl4.Location.Y); 
    } 
} 

如果Form1中有1个控制panelcontrol4事件的工作,但我加1点的控制如:simplebutton1 ......那么可以不火Form1_KeyDown 。然后,我必须启用=假simplebutton1,然后Form1_KeyDown工作

感谢您的帮助

enter image description here

enter image description here

+2

您可能需要设置['Form.KeyPreview'](https://msdn.microsoft.com/ en-us/library/system.windows.forms.control.previewkeydown(v = vs.110).aspx)为true,或者如果不起作用,请使用['Control.PreviewKeyDown'](https:// msdn .microsoft.com/en-us/library/system.windows.forms.control.previewkeydown(v = vs.110).aspx) –

+0

感谢您的回复^^ – DucAnhNguyen

回答

1

您的形式可能会自动处理keydown事件上的控件和代码不会得到调用。见Control.KeyDown Event

+0

感谢您的帮助^^,我的问题解决 – DucAnhNguyen

1

一般来说_KeyDown将发生在按下按键的同时控件有焦点。在你的情况下,Form1在按键时没有焦点。

+0

谢谢你的帮助^^ – DucAnhNguyen

0

我解决我的问题,我必须在此改变事件的KeyDownPreviewKeyDown @Matthew沃森