C#使用void函数时出现空引用异常
我肯定我这里出了点问题,但我的团队中没有人能解释这是什么。我的目标是能够从另一个表单中的按钮单击填充listView项,但是将变量传递到form1时会引发空引用异常(System.NullReferenceException:“对象引用未设置为对象的实例”。) 这是我的代码:Form1:C#使用void函数时出现空引用异常,c#,listview,C#,Listview,我肯定我这里出了点问题,但我的团队中没有人能解释这是什么。我的目标是能够从另一个表单中的按钮单击填充listView项,但是将变量传递到form1时会引发空引用异常(System.NullReferenceException:“对象引用未设置为对象的实例”。) 这是我的代码:Form1: AddRec addRec = new AddRec(); public AddRec AddRec { get; set; } public static string viewIte
AddRec addRec = new AddRec();
public AddRec AddRec { get; set; }
public static string viewItem1, viewItem2, viewItem3 = "";
public void YesClick()
{
ListViewItem lvi = new ListViewItem(viewItem1);
lvi.SubItems.Add(viewItem2);
lvi.SubItems.Add(viewItem3);
listView1.Items.Add(lvi);
}
表格2(AddRec):
其思想是AddRec上的add按钮用AddRec中文本框中的文本填充Form1中的listView。在Form1上引发异常。YesClick()您不能这样调用Form1。在填充或更改其属性之前,需要调用“opened Form1”。试试这个:
Form1 frm = Application.OpenForms.OfType<Form1>().Take(1).FirstOrDefault();
if (frm != null)
{
//Populate all your properties here:
frm.viewItem1 = name;
}
Form1 frm=Application.OpenForms.OfType().Take(1.FirstOrDefault();
如果(frm!=null)
{
//在此处填充您的所有属性:
frm.viewItem1=名称;
}
您不能那样调用Form1。在填充或更改其属性之前,需要调用“opened Form1”。试试这个:
Form1 frm = Application.OpenForms.OfType<Form1>().Take(1).FirstOrDefault();
if (frm != null)
{
//Populate all your properties here:
frm.viewItem1 = name;
}
Form1 frm=Application.OpenForms.OfType().Take(1.FirstOrDefault();
如果(frm!=null)
{
//在此处填充您的所有属性:
frm.viewItem1=名称;
}
好吧,yeslick()
不是一个静态方法,需要Form1
对象引用<代码>视图项1等是静态的,并且随类内存一起提供。因此,要回答这个问题,只需将YesClick()
设置为静态,它就会工作。您的代码不太清楚,但是,ListViewItem
有一个Subitems
集合检查,如果它为空,而不是直接添加到它中(lvi.Subitems.Add(viewItem2);
)更改YesClick()function to static使函数无法读取listView1,因此无法添加到listview。非常感谢任何其他信息:)好的,yeslick()
不是静态方法,需要Form1
对象引用<代码>视图项1等是静态的,并且随类内存一起提供。因此,要回答这个问题,只需将YesClick()
设置为静态,它就会工作。您的代码不太清楚,但是,ListViewItem
有一个Subitems
集合检查,如果它为空,而不是直接添加到它中(lvi.Subitems.Add(viewItem2);
)更改YesClick()function to static使函数无法读取listView1,因此无法添加到listview。非常感谢您提供任何其他信息:)在本例中您是否使用了库?“我的IDE”无法识别关键字应用程序是否使用WinForm?请确保您使用的是:使用System.Windows.Forms;我正在使用这个库,但是将您的代码复制粘贴到我的项目中,“应用程序”仍然无法识别。我更正了我的代码。现在应该可以了。在这个示例中,您是否使用了一个库?“我的IDE”无法识别关键字应用程序是否使用WinForm?请确保您使用的是:使用System.Windows.Forms;我正在使用这个库,但是将您的代码复制粘贴到我的项目中,“应用程序”仍然无法识别。我更正了我的代码。现在应该可以了。