2013-04-17 43 views
0

如何將行標記爲*在Form2被轉回Form1? 我的意思是當Form1被實例化時,它只能被名稱Form1引用 。但在符合*的行中,Form1被用作 類型的非對象。但是,您可以在名爲形式使用m_parent作爲參考的 Form1Form2 (我希望有人可以得到什麼,我試圖問。)要求解釋代碼的形式的參考

public partial class Form2 : Form 
    { 
*  private Form1 m_parent; 

*  public Form2(Form1 frm1) 
     { 
      InitializeComponent(); 
*   m_parent = frm1; 
     } 
    } 

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
    } 
+0

*嗅* ...聞起來像功課! –

回答

2

你有什麼是Form2的一個構造函數,需要對Form1實例的引用。在Form1上可能存在的代碼看起來是這樣的:

var form = new Form2(this); 
form.Show(); 

正在發生的事情是你創建窗體2與當前表單的引用,表現出來。它現在可以訪問Form1的公共成員

0

Form1和Form2都是可以實例化的普通類。

在Form2類中有一個構造函數,它將Form1對象的一個​​實例作爲參數。在構造函數體中,參數(對Form1對象的引用)然後存儲在m_parent變量中。