我创建了一个带有标签、文本框和按钮的表单。在表单加载事件中,我调用了文本框的focus()函数。但是当我运行代码时,光标并没有跳转到文本框。我需要光标在表单加载后立即进入文本框。该如何实现?
我创建了一个带有标签、文本框和按钮的表单。在表单加载事件中,我调用了文本框的focus()函数。但是当我运行代码时,光标并没有跳转到文本框。我需要光标在表单加载后立即进入文本框。该如何实现?
如果您只需要确保在首次加载表单时某个控件获得焦点,则可以更改所有控件的TabOrder
属性(在设计器中),使得相关控件为“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();
}
可以处理“Shown”事件。这段代码应该可以正常工作。
private void Form1_Shown(object sender, EventArgs e)
{
textBox2.Focus();
}
如果您希望在窗体加载时焦点始终在文本框上,可以将文本框的TabIndex属性设置为0。(此属性最终总是在form.designer.cs中设置。因此,在form.cs中您无需编写任何额外的代码。)