Передача Form Type в метод возвращает нулевую ссылку?
У меня есть метод, который выглядит примерно так:
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)
{
}
}
передавая аргументы этим возвращаемым объектам, ссылка не устанавливается на объект экземпляра:
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 ответа
Решение
Я понял, на самом деле все текстовые поля были в первой панели splitterPanel splitContainer, я перебрал их с помощью их свойства 'Controls' и изменил свойство Text TextBoxes... Ребята, спасибо за вашу поддержку.
Не видя остальной части вашего кода или точно зная, по какой строке было сгенерировано исключение, я предполагаю, что вы не инициализировали Test
прежде чем передать его в метод.
Либо это, либо
form.Controls.OfType<TextBox>().FirstOrDefault(n => n.Name == textbox)
Не находит совпадения и поэтому возвращается null
, Вы тогда звоните Text
на null
что бы бросить исключение.