将Form Type传递给方法会返回null引用?

时间:2013-03-13 03:07:45

标签: c# winforms telerik object-reference

我有一个类似这样的方法:

    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 个答案:

答案 0 :(得分:0)

如果没有看到你的其余代码或者确切地知道抛出异常的行,我猜你在将它传递给方法之前没有初始化Test

要么是,要么

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

找不到匹配项,因此返回null。然后在Text上调用null,这会抛出异常。

答案 1 :(得分:0)

我明白了,实际上所有的文本框都在splitContainer的第一个splitterPanel中,我用它们的'Controls'属性遍历它们并更改了TextBoxes的Text属性...伙计感谢您的支持。