很多時候我們需要用到使用C#代碼實現在表單是在當前焦點時,進行其它多按鍵動作。比如類似於QQ的Ctrl+Enter發送資訊的操作。這時候使用Form.ProcessCmdKey 方法是非常好的解決方案。下面是MSDN的相關資訊:
文法
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]protected override bool ProcessCmdKey( ref Message msg, Keys keyData)
參數
-
msg
-
類型: System.Windows.Forms ..::.
Message % 通過引用傳遞的 Message,它表示要處理的 Win32 訊息。
-
keyData
-
類型: System.Windows.Forms ..::.
Keys Keys 值之一,它表示要處理的鍵。
傳回值類型: System ..::.
Boolean 如果控制項處理並使用擊鍵,則為 true;否則為 false,以允許進一步處理。 以下是我做的一個例子,代碼實現的是在按下Ctrl+Enter的時候彈出一個對話方塊,對話方塊內容是“1234567890”,標題是“提示資訊”: protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if ((keyData == (Keys.Control | Keys.Enter))) { //按鈕的事件寫在這 MessageBox.Show("1234567890", "提示資訊", MessageBoxButtons.OK, MessageBoxIcon.Error); return true; } else return base.ProcessCmdKey(ref msg, keyData); }