2012-07-07 47 views
0

我在一個項目中有兩個表單。 當我的應用程序運行時,Form1被打開。之後,我開始Form2獲取應用程序首次運行表格

如何使用反射從Form2訪問Form1

+0

使用@JonSkeet方法。否則用反射這裏是你如何做到這一點:http://stackoverflow.com/a/388872/495455。正如@MarcGravell所解釋的:「如果你想要一個開放表單的列表,那就是'Application.OpenForms'。你可以使用GetType()來遍歷它,並檢查.Assembly來查找來自另一個程序集的那些。除此之外,我對這個問題並不完全清楚......「。祝你好運! – 2012-07-08 00:32:23

回答

6

爲什麼要爲此使用反射?

當您創建第二個形式,只是一個參考傳遞到第一個:

// I assume it's code within Form1 which opens Form2 
Form2 form2 = new Form2(this); 
form2.Show(); 

這是假設你很高興與Form2添加一個構造函數的參數。另外,使之成爲財產Form2

Form2 form2 = new Form2 { Form1 = this }; 
form2.Show(); 
+0

有沒有另一種方式來反思 – 2012-07-07 09:51:54

+4

@JuniorSK:你能解釋爲什麼你打算使用反射嗎?在這種情況下完全沒有必要。 – David 2012-07-07 09:53:19

+0

我創建了一個組件。我必須訪問組件containerform之後,我必須先訪問項目的第一個runn表單以查找其組件之一 – 2012-07-07 10:13:38

0

如果你打開只有一個窗口2的情況下,你也可以這樣做:Form2 f2 = Application.OpenForms["Form2"];

相關問題