将焦点设置为另一个控件

时间:2009-09-17 05:55:18

标签: c#

我希望将焦点从一个textbox1设置到另一个textbox2,而我在C#windows应用程序中按下文本框1中的ENTER键(c#2005)

3 个答案:

答案 0 :(得分:1)

将此添加到您的表单

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);
        }
    }

答案 1 :(得分:0)

处理textbox1的{​​{3}}或KeyPress事件,然后致电textbox2.Focus()

答案 2 :(得分:0)

首先,您必须将表单的 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)
{
...
}