C#父窗体打开子窗体,父窗口关闭后调用子窗口函数

时间:2014-11-17 17:32:50

标签: c# multithreading forms

长话短说...... 我需要Form_1才能打开Form_2。 在隐藏Form_1之后,我需要Form_2来执行代码。 (没有用户交互)

目前,我的Form_1代码就是......

function myFunction(){
// Create a new instance of the child form class
   Form2 F2 = new Form2(this,d);
// Minimise current form
  this.Hide();
// Show the child form
  F2.Show();
}

F2.Show然后从Form2_Shown事件启动更多代码。

问题是我需要在Form1完全隐藏后运行Form2_Shown代码。 因为Form1.myFunction调用F2.Show(),所以当Form1没有完全“退役”时,Form2_Shown将会发生。

有没有办法分离这一系列事件以获得理想的结果? 打开Form_2 关闭Form_1 在Form_2中运行代码而没有与Form_1的剩余连接?

线程? (他说是愚昧地说)

在你问之前......这是一个屏幕捕获应用程序。 Form_1是带按钮的UI。 Form_2是全屏透明表单。 因为Form_1挂在那里,它会导致黑色图像。

如果我使用相同的模型,但触发了Form_2中按键的屏幕截图,那么一切都运行良好。

希望这是有道理的。 如果需要,我当然可以发布大量的代码。

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以在Form2的构造函数中传递对Form1的引用。然后从Form2的构造函数调用Form1.Hide()方法。然后,从Form2的构造函数调用Form2上的Show()方法。