我创建了一个带有标签,文本框和按钮的表单。在表单加载事件中,我调用了文本框的focus()函数。但是当我运行我的代码时,光标不会进入文本框。加载表单后,我需要光标转到文本框。怎么做?
答案 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中编写任何额外的代码。)