2009-08-12 51 views
4

在C#中,我有兩個窗體:mainForm和form1。當新的表單,我會得到一個進程或線程?

class Form1; //... 
class mainForm { 
    //... 
    void f() { 
     Form1 form1 = new Form1(); 
     ... 
    } 
} 

我想等待form1退出並在mainForm中繼續以下工作。但我不知道form1被實現爲一個進程或線程以及如何獲得其ID。

謝謝。

回答

10

它既不是。它與你的其他表單在同一個UI線程上運行,除非你自己動手去做一些聰明的事情,消息泵將消息處理到所有的表單。

你想要做什麼?通常情況下保持參考爲第二形態的實例是足夠用於發送消息等

等待第二種形式來完成,使用ShowDialog(),或者如果你是一個形式,ShowDialog(this)

+0

謝謝Gravell並說非常多。我知道了。 – 2009-08-12 07:29:40

+0

我還有一個問題。我想我可以通過使用PeekMessage來完成。但我不知道如何在.Net中做到這一點。我知道如何在.Net中包裝Win32 API,但我認爲這很醜陋。 – 2009-08-12 07:38:02

1

form1的同一主線上運行,你可以簡單地運行Form1中的模態對話框像

Form1 form1 = new Form1(); 
form1.ShowDialog(this); //mainForm waits till form1 finishs its work 
//extra work in mainForm 
相關問題