2015-04-26 114 views
0

我想將數據從Form2轉換爲Form1listBox1Form2包含幾個文本框,將列表<object>添加到列表框(表單2到表單1)

我試圖通過將所有這些代碼放入Form1來解決此問題,但我無法從Form2獲取所需的值。

任何人都可以幫忙,我明白我不是很清楚,但我可以回答有關代碼的任何問題。

private void button3_Click(object sender, EventArgs e) 
{ 
    List<Form1Other> FileList = new List<Form1Other>(); 
    Form1Other[] f1Other = new Form1Other[10]; 
    Form1 testForm1 = new Form1(); 

    string TName = textBox1.Text; 
    string TDesc = textBox2.Text; 
    decimal TPrior = numericUpDown1.Value; 
    string TDate = dateTimePicker1.Value.ToShortDateString(); 
    string TCompl = "UNFINISHED"; 

    FileList.Add(new Form1Other(TName, TDesc, TPrior, TDate, TCompl)); 

    testForm1.listBox1.Items.Add(FileList[0].tName); 
    testForm1.listBox1.Items.Add(FileList[0].tDesc); 
    testForm1.listBox1.Items.Add(FileList[0].tPrior); 
    testForm1.listBox1.Items.Add(FileList[0].tDate); 
    testForm1.listBox1.Items.Add(FileList[0].tCompl); 
    System.Diagnostics.Debug.WriteLine(FileList[0].tDesc); 
+0

你想在Form1中Form2的從數據?他們是不同的班級嗎?如果是這樣,你可以在form2中設置一個公共屬性,然後在Form1中獲取它? –

+0

你的代碼示例中的「Form2」在哪裏?什麼是Form1Other?從Form1Other的全新實例中檢索值有什麼好處?即_its_值如何初始化?如果您發佈的代碼已經在Form1中,爲什麼要創建一個Form1的新實例?爲什麼你要從當前表單中的控件中檢索值(你認爲是Form1),而不是來自Form2的實例?你是對的......你的問題遠不清楚。你需要改進**很多**才能得到很好的答案。 –

+0

**注意:**重複問題很久以前就被詢問/回答,並且自那以後,許多其他類似的問題已經被詢問和回答。但是這一點非常好,我剛剛添加了一個新答案來詳細說明其他人對已接受答案作出的評論,以顯示另一種策略。在你的情況下,這些答案都應該適用。請注意,兩者都假定在某個時刻,一個表單對象具有對另一個表單的引用;你沒有在這裏發佈足夠的代碼給任何人提出建議如何在你的情況下做到這一點,但這不應該讓你難以理解 –

回答

-1

您很可能需要某種消息傳遞/事件機制,以便您可以跨不同的視圖/表單進行通信。

您需要使用隊列和發佈/訂閱來實現您自己的。 System.Messaging

或者使用已經實現的一個。

要注意幾個是我用的都是: