第一種:Alt + *(按鈕快速鍵) 在大家給button、label、menuStrip等控制項設定Text屬性時在名字後邊加&鍵名就可以了,比如button1.text= "確定(&O)"。就會有快速鍵了,這時候按Alt+O就可以執行按鈕單擊事件。 第二種:Ctrl+*及其他按鍵組合 在WinForm中設定要使用按鍵組合的表單的KeyPreview(向表單註冊鍵盤事件)屬性為True; 然後使用表單的KeyDown事件(在首次按下某個鍵時發生). 執行個體代碼: private void ***_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.F && e.Control) { button1.PerformClick(); //執行單擊button1的動作 } } 註:1、***代表表單名稱,大家可以看一下 ”Keys”的枚舉參數,以實現自己需要 2、還有一個問題,當使用Ctrl + *快速鍵時,對於焦點在可寫的控制項(如TextBox)上時,可能會將* 索引值同時輸入,則需要加另一句話將Handled設定為true,以取消 KeyPress 事件。 即: private void ***_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.F && e.Control) { e.Handled = true; //將Handled設定為true,指示已經處理過KeyPress事件 button1.PerformClick(); } } 第三種: 還是以button為例。給form添加一個contextMenuStrip1,將其邦定到button上,假設為button1。給contextMenuStrip1添加一個item,然後為它設定快速鍵(就是你想加在button上的快速鍵),並且將它的Visible屬性設為false。這樣,button1的快速鍵設定成功。 來自:http://www.cnblogs.com/benben7466/archive/2009/07/06/1517993.html
例如:視窗FormTestLink(的keydown事件)的斷行符號快速鍵添加
private void FormTestLink_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { btnTest_Click(sender, e); } }
轉自 http://blog.csdn.net/gaofang2009/article/details/5172456