2012-11-06 74 views
-1

我試圖建立一個應用程序,可以將不同的人存儲在ListBox控件中。不能以不同的形式添加項目到列表框

我的列表框控制位於Form1中等是這種方法that's給了我一些問題:

public void addPersonToList(Person person) { 
      string newPerson = person.firstName + " " + person.lastName + " " + person.age; 

      personList.Items.Add(newPerson); 

} 

的另一種形式,我稱之爲addPersonsToList-方法是這樣的:

Form1 form1 = new Form1(); 
    form1.addPersonToList(person); 

現在,我檢查了(在調試時)字符串newPerson addPersonToList實際上存儲了正確的字符串。 問題是該字符串不會顯示在我的ListBox(名爲personList)中。

有什麼建議嗎?

回答

3

使用new,您正在創建項目的全新實例。

Form1 form1 = new Form1(); 
form1.addPersonToList(person); 

所以這個代碼創建Form1的一個新實例,並增加了一個項目到該實例,這可能不是您要查看的一個。您不知何故需要參考正在顯示的實例,以便您可以參考該實例。爲MDI形式

foreach (Form frm in Application.OpenForms) 
{ 
    if (frm.GetType() == typeof(Form1)) 
    { 
      Form1 frmTemp = (Form1)frm; 
      frmTemp.addPersonToList(person); 
      fromTemp.Dispose(); 
    } 
} 

同樣:

+0

好了,謝謝你。你有關於如何引用原始表單的例子嗎? – marsrover

+0

正如我所表明的那樣,您需要以某種方式參考它。可能作爲表單的參數或屬性,但這取決於你在做什麼。 –

0

引用現有的開放形式,這樣做

foreach (Form frm in MdiParent.MdiChildren) 
{ 
}