2011-09-22 80 views
3

比方說,我有「Form1」和「Form2」,都是表單。 在Form1中有Main Class和Main方法。如何從C#中的其他表單訪問一個對象?

在Form1我創建這樣一個對象:

public myobject ob1 = new myobject(); 

但隨後,在Form2的,我有這樣的代碼:

private void bdCancelar_Click(object sender, EventArgs e) 
    { 
     ob1.status = 1; // I can't access ob1 !!! 
    } 

任何幫助嗎?

謝謝。

+4

接受一些你的答案 – roymustang86

+0

究竟是什麼,你牛逼準備做什麼?正確的答案取決於此。通常,您需要一個Form1實例,但在您的情況下可能不可能 –

回答

6

您需要Form1的實例。通常如果你已經顯示了這個表單,你已經實例化了它(Form1 form1 = new Form1())。然後,你可以在這種情況下操作和訪問公共成員:

form1.ob1.status = 1; 

另一種可能性是讓你Form2構造採取Form1實例:

public class Form2: Form 
{ 
    private readonly Form1 _form1; 
    public Form2(Form1 form1) 
    { 
     _form1 = form1; 
    } 

    private void bdCancelar_Click(object sender, EventArgs e) 
    { 
     _form1.ob1.status = 1; 
    } 
} 

,然後當你在裏面Form1的地方,並要創建並顯示Form2

var form2 = new Form2(this); 
form2.ShowDialog(); 
+0

我無法訪問Form1,這是在VS2010中啓動新的WinForm應用程序時自動創建的窗體。我沒有分享它。 – dysoco

+0

@dysoco,在這種情況下,當你實例化它時,你可以將這個form1實例傳遞給Form2的構造函數。這樣你就可以訪問它。我已經更新了我的答案以提供示例。 –

+0

你能解釋一下嗎? Form2中使用「Form1 form1 = new Form1()」嗎?在Form1中的 – dysoco

相關問題