按回车就模拟tab键

来源:互联网 发布:mac 文件夹丢失 编辑:程序博客网 时间:2024/05/16 11:15
菜鸟用c#做winform程序,窗体上放了好多的textbox控件,用户让我弄成按回车就模拟tab键。。。。
菜鸟用c#做winform程序,窗体上放了好多的textbox控件,用户让我弄成按回车就模拟tab键,我把每个控件的tabindex的顺序都设好了,并且在每个textbox控件的
KeyDown事件下写了代码:
            if (e.KeyCode == Keys.Enter)
            {
                SendKeys.Send("{TAB}+{HOME}");
            } 
这样我就实现了,但是好累啊,能否不用在每个textbox的事件下写代码就可以实现的办法,菜鸟的其他窗体有好多textbox控件呢,,高手,帮忙啊!!!  回复内容

【lxcnn】:
用同一个委托就行了

this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
.
.
.this.textBox20.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);

这样就写一个事件处理代码就行了
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {

        }


【lovefootball】:
用一个事件

【hbxtlhx】:
在窗体的代码里粘贴如下的代码就可以了:

protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter && this.ActiveControl is TextBox)
{
keyData = Keys.Tab;
}
return base.ProcessDialogKey(keyData);
}
 
【dai_wei】:
用不着每个都写,你写一个就可以了,写了第一个,然后把所有textbox控件的KeyDown事件都指向第一个KeyDown事情就可以了,方法如下:
1,写了第一个KeyDown完成
2,选定所有textbox控件,进入事情编辑器中找到KeyDown事件
3,在KeyDown下拉框中选中第一个的KeyDown事情然后确定就可以了
这样也可以,你试一下吧!!!

【hzg_1998】:
Form的KeyPreview设置为true
  private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
      if (e.KeyChar == 13)
      {
        SendKeys.Send("{TAB}");

         e.Handled=true;
      }
    }

原创粉丝点击