1. 程式人生 > >C# winform中keyDown事件用法

C# winform中keyDown事件用法

1、在form中新增KeyDown事件,如下圖


2.、在事件中加入需要實現的方法,可以根據鍵值來區別按下哪個鍵需要執行什麼事件。如下例項原始碼:

        private void Login_KeyDown(object sender, KeyEventArgs e)
        {
            switch(e.KeyValue)
            {
                case 13:        //鍵值(Enter鍵為例)
                    Loging();   //要實現的東西
                    break;
                default:
                    
                    break;
            }
        }

3、測試事件是否成功。如果按下按鍵不會觸發窗體的KeyDown事件,也沒有呼叫KeyDown事件的處理程式。

原因:由於窗體中添加了控制元件,於是焦點就在其中一個控制元件上,如果我們要處理的事件窗體和獲取焦點的控制元件都同時擁有,系統就會將鍵盤的操作鍵值直接傳遞給這個獲取焦點的控制元件。,就會出現上面這個問題。

解決方案:此時需要將窗體的KeyPreview屬性設定為true(如下圖所示:),將系統傳入的鍵值先傳遞給窗體,再傳遞給控制元件。MSDN關於KeyPreview的說明:如果窗體將接收所有鍵事件,則為 true;如果窗體上當前選定控制元件接收鍵事件,則為 false。預設為 false。