【发布时间】:2014-11-17 17:32:49
【问题描述】:
长话短说…… 我需要 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 事件中启动更多代码。
问题是我需要 Form2_Shown 代码在 Form1 完全隐藏后运行。 因为 Form1.myFunction 调用 F2.Show(),所以 Form2_Shown 将始终发生,而 Form1 没有完全“退休”。
有没有办法分离这一系列事件以获得预期的结果? 打开表格_2 关闭表格_1 在 Form_2 中运行代码,与 Form_1 没有剩余连接?
线程 ?? (他对他们一无所知)
在你问之前......这是一个屏幕捕获应用程序。 Form_1 是带有按钮的 UI。 Form_2 是全屏透明表单。 因为 Form_1 挂在那里,所以会导致黑色图像。
如果我使用相同的模型,但在 Form_2 中通过按键触发屏幕截图,那么一切正常。
希望这是有道理的。 如果需要,我当然可以发布大量代码。
非常感谢。
【问题讨论】:
-
所以在
Form1类中创建一个事件,并让Form2订阅该事件。当Form1被隐藏时,它会触发事件。 -
您是否尝试在
VisibleChanged事件中显示Form2?
标签: c# multithreading forms