C# 关闭form2后如何选择form1的文本框?
我在任何地方都找不到这个确切的答案,很抱歉,如果它已经被回答了 textbox.select和textbox.focus在form1_load下工作得很好,但是我有一个链接标签可以打开form2,但是用我的取消按钮或退出按钮关闭form2显然不会再次选择或聚焦form1中的文本框 已更新以显示初始化Form2FormPopup的事件的代码示例C# 关闭form2后如何选择form1的文本框?,c#,winforms,C#,Winforms,我在任何地方都找不到这个确切的答案,很抱歉,如果它已经被回答了 textbox.select和textbox.focus在form1_load下工作得很好,但是我有一个链接标签可以打开form2,但是用我的取消按钮或退出按钮关闭form2显然不会再次选择或聚焦form1中的文本框 已更新以显示初始化Form2FormPopup的事件的代码示例 private void CreateNew_LinkClicked(object sender, LinkLabelLinkClickedEventAr
private void CreateNew_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
var popup = new FormPopup();
popup.ShowDialog();
}
这可能不是最好的答案,但在初始化表单2时,我假设您正在执行类似于Form2 frm2=new Form2;,然后在该行下,使用frm2.FormClosed+=frm2_FormClosed;将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();
}
private void InitForm2()
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
textbox1.Focus(); //Will not happen until after form2 is closed.
}
编辑:正如@Ofir Winegarten所指出的,如果您使用ShowDialog而不是Show,您可以立即设置textbox1.Focus调用,因为它在form2关闭之前不会执行
private void CreateNew_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
FormPopup popup = new FormPopup();
popup.ShowDialog();
NameBox.Focus();
}
代码示例:
private void InitForm2()
{
Form2 frm2 = new Form2();
frm2.FormClosed += Form2_FormClosed;
frm2.Show();
}
private void Form2_FormClosed(object sender, EventArgs e)
{
textbox1.Focus();
}
private void InitForm2()
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
textbox1.Focus(); //Will not happen until after form2 is closed.
}
上面的每个人都给出了这个答案,谢谢大家。我所需要的只是添加我的文本框;在初始化Form2的单击事件之后。对于任何想知道这是因为在ShowDialog之后写的东西;直到Form2关闭后才会执行
private void CreateNew_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
FormPopup popup = new FormPopup();
popup.ShowDialog();
NameBox.Focus();
}
你试过什么?添加您的代码请共享一些代码以指导其他人显示您是否显示表单?使用Show还是ShowDialog?将打开第二个表单的代码部分添加到问题中。如果使用ShowDialog,为什么需要该事件?为什么不把焦点放在后面?是的,公平点,你可以这样做。TBH我忘了表单有一个Show和ShowDialog选项,我已经有一段时间没有使用它们了。我将编辑我的答案。