我是一個相當新的Visual C#,但長時間在Delphi中編碼。我創建了一個具有隱藏的簡單面板的窗體,除非您在鍵盤上鍵入特定的按鍵(我確實將「KeyPreview」設置爲窗體的true,並且我使用KeyDown事件來處理確定正確的按鍵被按下並使面板可見/不可見)。面板下面是一個web瀏覽器組件。確保C#表格具有焦點時它應該
正在發生的事情如下:
當我的形式開始啓動,我對「中顯示」事件代碼,確保形式已初步重點:
private void Form1_Shown(object sender, EventArgs e)
{
if (!Focused)
{
Focus();
}
}
當窗體在這一點上,我的代碼用於檢測正確的按鍵以使面板出現或消失很好。
這裏是事情變得奇怪,我不知道該怎麼做。有兩個部分我處理的,什麼是錯的:
如果我再次點擊另一種形式,然後在我的窗體的標題欄來獲得表單上的焦點,並嘗試一個按鍵,該按鍵檢測不起作用。但是,如果我再次單擊另一個表單並返回到表單上,表單的擊鍵檢測功能仍然有效。我可以做些什麼來確保每次我的聚焦時都能發揮作用?
如果我單擊我自己窗體中的Web瀏覽器組件,窗體的KeyDown代碼就不再執行。即使我單擊表單的標題欄,KeyDown事件也不起作用。我需要做些什麼來保證,如果我的表單中的組件被點擊,我的表單仍然會響應KeyDown事件?
在此先感謝您的任何建議。
你能爲你的標題欄顯示代碼嗎? –
就是這樣。我沒有任何標題欄的代碼。我只是爲窗體本身提供了KeyDown事件的代碼。 – Andre72127