在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。 方法1: if (e.KeyChar == '/r')
{ SendKeys.Send("{TAB}"); } 方法2: private void Form1_Load(object sender, EventArgs e)
{ //.... AddEnterKeyDownEvent(this); } 函数AddEnterKeyDownEvent可以查找窗体中所有的TextBox和ComboBox类型控件并添加按键事件。代码如下: private void AddEnterKeyDownEvent(Control owner)
{ foreach (Control ctrl in owner.Controls) { if ((ctrl is TextBox) || (ctrl is ComboBox)) { //为TextBox或者ComboBox类型控件添加按键事件 ctrl.KeyDown += new System.Windows.Forms.KeyEventHandler(this.EnterKeyDown); } else if((ctrl is GroupBox ) || (ctrl is Panel)) { //为GroupBox和Panel中的TextBox或者ComboBox类型控件添加 AddEnterKeyDownEvent(ctrl); } } } 对应的EnterKeyDown事件 private void EnterKeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{ if(e.KeyCode==Keys.Enter) { SendKeys.Send("{TAB}"); } }
方法3: if (e.KeyChar == ' /r')
{ this.SelectNextControl(this.ActiveControl, true, true, true, true); //SendKeys.Send("{TAB}");//也可以使用这个代替SelectNextControl }
这样会有个问题,按一次回车会电脑都会发出声音(DropDown样式的ComboBox),如果要去掉这个声音,就添加一句e.Handled = true; if (e.KeyChar == '/r ')//
{ e.Handled = true;//通知系统,该KeyPress事件已经处理过 this.SelectNextControl(this.ActiveControl, true, true, true, true); //SendKeys.Send("{Tab}"); }
嘿嘿,到这里好像偶尔会有问题,也许我们的KeyPress事件处理主要是将TextBox控件中的回车当成Tab处理,但碰到Button控件,比如“确定”按钮,那么Button的Click事件可能会失灵。我就碰到这样的情况,但在我给Button添加一个空的KeyPress事件处理函数后,这个问题又不存在了,然后我又将Button的KeyPress事件处理函数清除,Button的Click事件还正常工作,搞不懂是什么原因导致Button的Click事件失灵的,又是怎么活过来的!! |
请发表评论