2016-07-07 109 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沃森