我无法在任何地方找到这个确切的答案,对不起,如果已经回答了。
textbox.select和textbox.focus在form1_load下工作得很好但是我有一个打开form2的linklabel,但是使用我的取消按钮或退出按钮关闭form2显然不会再次选择或将文本框聚焦在form1中。
更新以显示初始化Form2(FormPopup)
的事件的代码示例private void CreateNew_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
var popup = new FormPopup();
popup.ShowDialog();
}
答案 0 :(得分:2)
这可能不是最佳答案,但是在初始化表单2的地方(我假设您正在执行Form2 frm2 = new Form2();
之类的操作),我会在该行下,使用FormClosed事件将该事件挂接到该表单frm2.FormClosed += frm2_FormClosed;
。现在你有一个方法可以检测form2何时从你的form1关闭,在这个方法中,你可以设置文本框的焦点。
代码示例:
private void InitForm2()
{
Form2 frm2 = new Form2();
frm2.FormClosed += Form2_FormClosed;
frm2.Show();
}
private void Form2_FormClosed(object sender, EventArgs e)
{
textbox1.Focus();
}
编辑:正如@Ofir Winegarten所指出的,如果您使用ShowDialog而不是Show,您可以在此之后立即设置textbox1.Focus()
调用,因为在关闭form2之前它不会执行。
代码示例:
private void InitForm2()
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
textbox1.Focus(); //Will not happen until after form2 is closed.
}
答案 1 :(得分:0)
上面的每个人都帮助了这个答案谢谢你们。我只需要添加myTextBox.Focus();在我初始化Form2的click事件之后。对于任何想知道它的人是因为在ShowDialog()之后写的任何东西;在Form2关闭之后才会执行。
private void CreateNew_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
FormPopup popup = new FormPopup();
popup.ShowDialog();
NameBox.Focus();
}