2013-03-13 3 views
0

У меня есть метод, который является чем-то вроде этого:Передача формы в метод возвращает нулевую ссылку?

public void Report(Form form, string[] textboxes, string[] patientdetails) 
    { 
     try 
     { 
      int i = 0; 
      foreach (string textbox in textboxes) 
      { 
       form.Controls.OfType<TextBox>().FirstOrDefault(n => n.Name == textbox).Text = patientdetails[i]; 
       i++; 
      } 

      form.ShowDialog(); 
     } 
     catch (Exception ex) 
     { 
     } 
    } 

путем передачи аргументов эти возвращения объекта refrence не установлен в качестве объекта экземпляра:

string[] textboxes = new string[] { "txtPatientName", "txtAge", "txtGender","txtTestType","txtDate" }; 
string[] patientDetails = new string[]{"Ammar Bashir", "19", "Male", "White Blood Cell Test", "12 March , 2013"}; 

//Test a winform which contain textboxes. 
    Report(Test, textboxes, patientDetails); 
+2

Отлаживайте этот код и сообщите нам, где проблема на самом деле. Я предполагаю, что 'FirstOrDefault (n => n.Name == textbox)' возвращает null для одного из этих имен текстовых полей. – Tim

+0

Это означает, что он не нашел текстовые поля в форме, которая передается как параметр, и да, это строка кода, которая бросает исключение. –

+0

Правильно ... так почему существует несоответствие между строками и тем, что находится на форме? – Tim

ответ

0

Я получил его, на самом деле все текстовые поля были в первом splitterPanel splitContainer, я просматриваю их с помощью свойства «Элементы управления» и изменил свойство Text в TextBoxes ... Ребята благодарны за вашу поддержку.

0

Не видя остальную часть вашего кода или зная, в какой именно строке было выбрано исключение, я предполагаю, что вы не инициализировали Test перед тем, как передать его методу.

Либо так, либо

form.Controls.OfType<TextBox>().FirstOrDefault(n => n.Name == textbox) 

не находит спичку и, следовательно, возвращение null. Затем вы вызываете Text на null, который выдает исключение.

+0

Тест - это класс winform, который уже был инициализирован при передаче методу. –

+0

Когда Iam делает то же самое без метода, он отлично работает. Но не знаю, почему, поскольку передаваемые параметры возвращают null. –

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

  • Нет связанных вопросов^_^