Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将焦点设置为另一个控件_C# - Fatal编程技术网

C# 将焦点设置为另一个控件

C# 将焦点设置为另一个控件,c#,C#,在C#windows应用程序(C#2005)中,当我在textbox1中按ENTER键时,我想将焦点从一个textbox1设置到另一个textbox2,处理textbox1的or事件,然后首先调用textbox2.focus(),您必须将表单的KeyPreview属性设置为true。然后,您必须重写表单的OnKeyDown方法,并创建如下案例: if(e.KeyCode == Keys.Enter) { Control ctlNext = this.GetNextControl(th

在C#windows应用程序(C#2005)

中,当我在textbox1中按ENTER键时,我想将焦点从一个textbox1设置到另一个textbox2,处理
textbox1
的or事件,然后首先调用
textbox2.focus(),您必须将表单的KeyPreview属性设置为true。然后,您必须重写表单的OnKeyDown方法,并创建如下案例:

if(e.KeyCode == Keys.Enter)
{
      Control ctlNext = this.GetNextControl(this.ActiveControl, true);
      ctlNext.Focus();
}
else
{
      base.OnKeyDown(e);
}
请注意,此代码适用于窗体上的每个控件,并将焦点移动到下一个控件。如果您只希望此代码适用于文本框,可以添加如下复选框:

if(this.ActiveControl is TextBox)
{
...
}
将此添加到您的表单中

protected override void OnKeyDown(KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            Control NextControl = this.GetNextControl(this.ActiveControl, true);
                while (!NextControl.TabStop || !NextControl.Enabled || !NextControl.Visible)
                {
                    NextControl=this.GetNextControl(NextControl, true);
                }
                NextControl.Focus();
        }
        else
        {
            base.OnKeyDown(e);
        }
    }

记住在某个地方也要设置e.SuppressKeyPress=true,否则回车键仍会注册到其他控件(例如表单的AcceptButton)。