2012-09-12 87 views
0

當從文本框在窗口2在Form1發送值到列表框, 我得到一個NullReferenceException錯誤。發送價值爲另一種形式

的處理程序代碼是:

public void button1_Click(object sender, EventArgs e) { 
    ListBox LB = Application.OpenForms["Form1"].Controls["Project_list"] as ListBox; 
    LB.Items.Add(Project_name.Text);   
} 

它是什麼回事?

+0

也許Form1沒有打開,並且Application.OpenForms [「Form1」]返回null –

+0

檢查Application.OpenForms [「Form1」]'以及'.Controls [「Project_list」]'如果其中任何一個爲null。 (添加斷點和檢查應該做的訣竅) –

+0

好..應該。 From1是啓動的勝利形式。那麼我點擊一個按鈕來打開form2 –

回答

2

只適用於演示目的...檢查此代碼,設置斷點並查看會發生什麼。

public void button1_Click(object sender, EventArgs e) 
{ 
    // i do assume there is a class Form1 within your project?! 
    Form1 frm = (Form1) Application.OpenForms["Form1"]; 
    // look for Project_list within your Form1.Controls, true to search all childControls too 
    Control[] ctrls = frm.Controls.Find("Project_list", true); 
    if (ctrls.Length >0) 
    { 
     ListBox LB = ctrls[0] as ListBox; 
     if (LB!=null) 
      LB.Items.Add(Project_name.Text);   
     else 
      System.Diagnostics.Debug.WriteLine("Doooooh"); 
    } 
} 

這只是一個例子,看看你的代碼有什麼問題!

+0

我得到它的工作。我忘了我正在使用tabControl和tabpage1。 感謝您的努力。我的壞:> –