C# WinForm给Button或其它控件添加快捷键响应


今天做东西遇到要给按钮添加快捷键。就在这介绍三种添加快捷键的方式。

第一种Alt + *(按钮快捷键)

在大家给button、label、menuStrip等控件设置Text属性时在名字后边加&键名就可以了,比如button1.text= "确定(&A)"。就会有快捷键了,这时候按Alt+A就可以执行按钮单击事件。

第二种Ctrl+*及其他组合键  

在WinForm中设置要使用组合键的窗体的KeyPreview(向窗体注册键盘事件)属性为True;然后使用窗体的KeyDown事件(在首次按下某个键时发生).  

实例代码: 

1 private void 窗体名字_KeyDown(object sender, KeyEventArgs e)
3 {   
4   if (e.KeyCode == Keys.F && e.Control)
5   {  
6     button1.PerformClick(); //执行单击button1的动作
7   }    
8 }  

注:大家可以看一下 ”Keys”的枚举参数,以实现自己需要 

当使用Ctrl + *快捷键时,对于焦点在可写的控件(如TextBox)上时,可能会将* 键值同时输入,则需要加另一句话将Handled设置为true,以取消 KeyPress 事件

如下代码:

1 private void ***_KeyDown(object sender, KeyEventArgs e)  
2 {    
3   if (e.KeyCode == Keys.F && e.Control)  
4   { 
5     e.Handled = true; //将Handled设置为true,指示已经处理过KeyPress事件   
6     button1.PerformClick();    
7   }    
8 }  

第三种 窗体的keydown事件响应回车添加快捷键

1 private void 窗体名称_KeyDown(object sender, KeyEventArgs e)  
2 {  
3   if (e.KeyCode == Keys.Enter)  
4   {  
5     Button_Click(sender, e);  
6    }  
7 }  

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
Bing Webmaster Portal Back