C# 鍵盤消息處理

在C#程序設計中,經常需要處理Form中的鍵盤消息,在Form上,含有各種各樣的控件,此時,應該注意,在C#中,對每一個控件不會相應鍵盤事件,鍵盤響應時間只針對於Form,可以在Form鍵盤消息中註冊鍵盤消息。

this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyDown);

爲了讓Form相應鍵盤消息,應該增加鍵盤消息的使能

     this.KeyPreview = true;

在Form中寫入鍵盤消息的相應函數MainForm_KeyDown

privatevoid MainForm_KeyDown(System.Object sender, System.Windows.Forms.KeyEventArgs e)

{

   switch(e.KeyCode)

   {

caseKeys.Up:

     break;

caseKeys.Left:

break;

caseKeys.Right:

break;

caseKeys.Down:

break;

}

… ……  … …  ……

}

   通過以上代碼,C#應用程序就能採用鍵盤事件進行相關的事件處理,由於本文所用的鍵爲方向鍵,在程序運行中,方向鍵會在某些控件的發揮其它作用,爲了使所用的鍵沒有二義性,可以重載鍵盤處理函數ProcessDialogKey()。

protectedoverridebool ProcessDialogKey(Keys keyData)

{

if (keyData == Keys.Up || keyData == Keys.Down ||

keyData == Keys.Left || keyData == Keys.Right)

returnfalse;

else

        returnbase.ProcessDialogKey(keyData);

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章