2013-06-01 115 views
0

如何從其他主窗體讀取數據,如使用輔助窗體中的簡單文本?從其他表格讀取數據

我在主窗體中使用了一個公共變量進行賦值,但是當我調用主窗體時,該變量爲NULL。

+0

請告訴你如何稱呼它,也使其靜態 – meda

+0

TELS運輸發射車=新TELS(); txtName.Text = tels.NameAndSureName(); – user1837982

+0

tels是主表單的名稱 – user1837982

回答

0

有很多方法可以將值傳遞給另一個表單,其中一種方法是將其傳遞給被調用表單的constructor,然後將其傳遞給local/private property

比方說,你是在Form1,你叫Form2

Form2 frmCalled = new Form2("Pass this value"); 

和你Form2constructor都會有這個現在

public Form2(String val) 
    { 
     InitializeComponent(); 
     this.passval = val; 
    } 

這意味着你有一個property命名passval,如:

private string passval { get; set; } 

所以,如果你想使用它,那麼現在只需調用屬性即可使用它。例如,如果一個按鈕被Form2點擊你想現在分配一個值,那麼你將有:

private void button1_Click(object sender, EventArgs e) 
    { 
     String receivedValue; 
     receivedValue = passval; 
    } 

另一種方法是從父窗體使用staticpublic屬性,然後從二級或叫它被調用的形式。讓我們在您的Form1或父窗體說你會聲明是這樣的:

public static string fromParentForm { get; set; } 

而且假設您呼叫的Form2或被叫形式,你會做這樣的:

Form2 frmCalled = new Form2(); 
fromParentForm = "Parent Form Value here"; // Put value first in your static property 
frmCalled.Show(); 

Form2可能然後訪問Parent Form喜歡的那個值或屬性:

private void button1_Click(object sender, EventArgs e) 
    { 
     // Value from Parent form static property could be access anywhere in the form 
     MessageBox.Show(Form1.fromParentForm); 
    } 
+0

非常好的例子我使用相同的 –

+0

謝謝@ A.Goutam。上帝保佑。 – Edper

0

爲了這個目的,你可以使用多種方法。其中之一(可沒那麼好的做法,但我不知道這個數據的其他目的

首先創造出保持SecondaryForm MainForm中的參考變量:

Private MainForm mainForm; 

然後創建的構造次要形式,這需要作爲參數參考主要形式

Public SecondaryForm(MainForm mainForm) 
{ 
    this.mainForm = mainForm;  
} 

然後,當你打開一個輔助形式(我假設你的MainForm打開此),創造SecondaryForm的實例與您的新的構造:

//somewhere in MainForm 
SecondaryForm secondaryForm = new SecondaryForm(this); 
secondaryForm.Show() //or ShowDialog() 

後SecondaryForm的這裏面的代碼,你可以使用所有的公共屬性/實例的方法OD你的MainForm