我有两种形式。我用这段代码显示我的第二个表单:
Form2 f = new Form2();
f.ShowDialog();
我需要了解焦点何时返回主窗体。我尝试Activate
了事件,但事实并非如此。
我有两种形式。我用这段代码显示我的第二个表单:
Form2 f = new Form2();
f.ShowDialog();
我需要了解焦点何时返回主窗体。我尝试Activate
了事件,但事实并非如此。
对 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)
当您键入
Form2 f = new Form2();
f.ShowDialog();
它一直等到您手动关闭 Form2 实例,然后返回到主窗体。如果您使用 ShowDialog() 方法,就会发生这种情况。
在某些情况下,您只想在几分之一秒内弹出另一个表单并返回主表单,您应该使用 formInstance.Show() 方法。Show() 方法不等待第二个窗体关闭,它立即执行并将控制权传递给 Show() 语句之后的下一条语句。
希望你能理解。