在C#中,我有兩個窗體:mainForm和form1。當新的表單,我會得到一個進程或線程?
class Form1; //...
class mainForm {
//...
void f() {
Form1 form1 = new Form1();
...
}
}
我想等待form1退出並在mainForm中繼續以下工作。但我不知道form1被實現爲一個進程或線程以及如何獲得其ID。
謝謝。
在C#中,我有兩個窗體:mainForm和form1。當新的表單,我會得到一個進程或線程?
class Form1; //...
class mainForm {
//...
void f() {
Form1 form1 = new Form1();
...
}
}
我想等待form1退出並在mainForm中繼續以下工作。但我不知道form1被實現爲一個進程或線程以及如何獲得其ID。
謝謝。
它既不是。它與你的其他表單在同一個UI線程上運行,除非你自己動手去做一些聰明的事情,消息泵將消息處理到所有的表單。
你想要做什麼?通常情況下保持參考爲第二形態的實例是足夠用於發送消息等
等待第二種形式來完成,使用ShowDialog()
,或者如果你是一個形式,ShowDialog(this)
。
form1的同一主線上運行,你可以簡單地運行Form1中的模態對話框像
Form1 form1 = new Form1();
form1.ShowDialog(this); //mainForm waits till form1 finishs its work
//extra work in mainForm
謝謝Gravell並說非常多。我知道了。 – 2009-08-12 07:29:40
我還有一個問題。我想我可以通過使用PeekMessage來完成。但我不知道如何在.Net中做到這一點。我知道如何在.Net中包裝Win32 API,但我認爲這很醜陋。 – 2009-08-12 07:38:02