2012-09-12 2 views
0

При передаче значения из текстового поля в form2 к ListBox в 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. Спасибо за ваши усилия. мой плохой:> –

Смежные вопросы