把Enter键转换为Tab键总结

来源:互联网 发布:数据挖掘常用分析方法 编辑:程序博客网 时间:2024/06/07 12:44

在这里需要在输入的时候,按下enter键自动转向下一个tab对应的控件,下面总结了几种实现的方法:

 

方法一

        private void Form1_Load(object sender, EventArgs e)
        {
           
this.KeyPreview = true;
        }

 

        private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Right || e.KeyCode == Keys.Down)
            {
                if (ActiveControl != null)
                {
                   
this.SelectNextControl(this.ActiveControl, true, true, true, false);
                }
            }
            else if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Up)
            {
                if (ActiveControl != null)
                {
                   
this.SelectNextControl(this.ActiveControl, false, true, true, false);
                }
            }
        }

方法二

        private void Form1_Load(object sender, EventArgs e)
        {
           
this.KeyPreview = true;
        }

 

        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '/r')
            {
               
System.Windows.Forms.SendKeys.Send("/t");
                e.Handled = true;
            }
        }

 

方法三

        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.Enter)
            {
               
if (!(ActiveControl is Button))
                {
                   
System.Windows.Forms.SendKeys.Send("{tab}");
                    return true;
                }
            }
            if (keyData == Keys.F1)
            {
                MessageBox.Show("Just Test___" + keyData.ToString());
            }

 

            return base.ProcessCmdKey(ref msg, keyData);
        }

 

说明,上面的方法一虽然实现了enter键转换为tab键的功能,但是,它对所有的控件,都将enter转换为tab了,所以如果想达到当焦点到达login按钮就停止然后执行对应的事件,建议采用后面两种方法。

原创粉丝点击