我有两种形式。我用这段代码展示了我的第二个表格:
Form2 f = new Form2();
f.ShowDialog();
我需要了解焦点何时返回主窗体。我尝试了Activate
事件,但事实并非如此。
答案 0 :(得分:4)
对ShowDialog()的调用阻止了父窗体 当您的代码退出ShowDialog()时,您当前的表单将再次变为活动状态
例如:
using(Form2 f = new Form2())
{
// At the moment of the call of ShowDialog, the Net Framework start its work to
// pass the focus to the first control in the Form2 instance
if(DialogResult.OK == f.ShowDialog())
{
// Form confirmed, do your stuff
}
}
// At the end of the using block the parent form is again the active form with the focus on
// the button that has started this process (or the last control that had focus)
答案 1 :(得分:1)
键入
时Form2 f = new Form2();
f.ShowDialog();
它等待,直到您手动关闭Form2实例,然后返回到主窗体。如果您使用ShowDialog()方法,则会发生这种情况。
在某些情况下,如果您只想弹出另一个表单几分之一秒并返回主表单,则应使用formInstance.Show()方法。 Show()方法不等待第二个表单被关闭,它立即执行并将控件传递给Show()语句后的下一个语句。
希望你理解它。