Visual C#-'对象引用未设置为对象的实例。'尝试将列表传递给另一种形式时出错[重复]

问题描述 投票:-1回答:1

不知道怎么了。该列表不为空,我以为我初始化了它。其中有项目,但是如果程序未引发空引用异常,我仍然无法将其传递给另一种形式。这是我的代码:

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
        }

我对另一项任务也具有类似的功能,并且可以正常工作。这里出了什么问题?

c# .net nullreferenceexception
1个回答
3
投票

当您尝试访问null的对象的字段或属性时,将引发空引用异常。>

因此,如果parent.resultsList抛出空引用异常,那是因为parentnull,这意味着this.Ownernull。这是因为调用owner时没有通过Show()窗口。

更改此行:

Show()

为此:

results.Show();
    
© www.soinside.com 2019 - 2024. All rights reserved.