专注于文本框

时间:2009-06-30 05:48:33

标签: c#

我创建了一个带有标签,文本框和按钮的表单。在表单加载事件中,我调用了文本框的focus()函数。但是当我运行我的代码时,光标不会进入文本框。加载表单后,我需要光标转到文本框。怎么做?

4 个答案:

答案 0 :(得分:8)

如果您只是需要确保在首次加载表单时获得焦点,请更改所有控件的TabOrder属性(在Designer中),以便相关控件为“0” ,其他元素从那里开始,'1','2'等等。

如果根据某些条件显示表单时需要动态选择其他控件,请使用以下代码:

private void Form1_Load(object sender, EventArgs e) {
    // You need to show the form otherwise setting focus does nothing 
    // (there are no controls to set focus to yet!)
    this.Show()
    if (someCondition == true)
        control.Focus();
    else
        control2.Focus();
}

答案 1 :(得分:3)

改为处理Shown事件。这段代码应该有用。

private void Form1_Shown(object sender, EventArgs e)
{
    textBox2.Focus();
}

答案 2 :(得分:1)

不要在Load事件中调用Focus。在Activate事件中调用它。那会起作用

答案 3 :(得分:1)

如果在加载表单时始终希望将焦点放在文本框上,则可以将文本框的TabIndex属性设置为0。 (此属性最终始终在form.designer.cs中设置。并且您不必在form.cs中编写任何额外的代码。)