不知道怎么了。该列表不为空,我以为我初始化了它。其中有项目,但是如果程序未引发空引用异常,我仍然无法将其传递给另一种形式。这是我的代码:
public List<Global.Invoice> resultsList = new List<Global.Invoice>();
private void stateComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
bool unique = true;
resultsList.Clear();
if (stateComboBox.SelectedItem.ToString() != SELECT_VAL)
{
foreach (Global.Invoice invoice in invoiceList)
{
if (stateComboBox.SelectedItem.ToString() == invoice.recipientState)
{
foreach (int invoiceNo in invoiceNoListBox.Items)
{
if (invoice.number == invoiceNo)
{
unique = false;
}
}
if (unique == true)
{
resultsList.Add(invoice);
}
else
{
unique = true;
}
}
}
resultsForm results = new resultsForm();
results.Show();
}
}
这是结果表单中的内容:
private List<Global.Invoice> invoiceList = new List<Global.Invoice>();
private void resultsForm_Load(object sender, EventArgs e)
{
mainForm parent = (mainForm)this.Owner;
invoiceList = parent.resultsList; //null reference exception
}
我对另一项任务也具有类似的功能,并且可以正常工作。这里出了什么问题?
当您尝试访问null
的对象的字段或属性时,将引发空引用异常。>
因此,如果parent.resultsList
抛出空引用异常,那是因为parent
为null
,这意味着this.Owner
为null
。这是因为调用owner
时没有通过Show()
窗口。
更改此行:
Show()
为此:
results.Show();