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

本文关键字:窗体 子函数 调用 | 更新日期: 2023-09-27 18:30:37

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

目前,我的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(),那么Form2_Shown就会发生,而 Form1 并没有完全"退休"。

有没有办法将这一系列事件分开以获得预期的结果?开放式Form_2关闭Form_1在Form_2中运行代码,没有剩余的Form_1连接?

线程??(他不知地说)

在你问之前...这适用于屏幕捕获应用程序。Form_1是带有按钮的 UI。Form_2是全屏透明形式。因为Form_1挂在那里,所以会导致黑色图像。

如果我使用相同的模型,但在Form_2中通过按键触发屏幕捕获,那么一切正常。

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

非常感谢。

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

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