我确信我在这里遇到了一些问题,但我的团队中没有人可以解释它是什么。我的目标是能够从另一个窗体中的按钮单击填充listView项,但是在将变量传递给form1时会抛出空引用异常(System.NullReferenceException:'对象引用未设置为对象的实例。')
这是我的代码:Form1:
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);
}
Form2(AddRec):
private void btnAdd_Click(object sender, EventArgs e)
{
name = txtNameF.Text.ToLower() + " " + txtNameS.Text.ToLower();
if (name != "")
{
num = txtNum.Text;
mobileNum = txtModNo.Text;
Form1.viewItem1 = name;
Form1.viewItem2 = num;
Form1.viewItem3 = mobileNum;
Form1.YesClick();
txtNameF.Text = "";
txtNameS.Text = "";
txtNum.Text = "";
txtModNo.Text = "";
}
else
{
MessageBox.Show("Fields Required", "Warning");
}
}
想法是AddRec上的添加按钮使用AddRec中文本框中的文本填充Form1中的listView。 Form1.YesClick()
抛出异常答案 0 :(得分:0)
您无法像这样调用Form1。在填充或更改其属性之前,您需要调用"打开的Form1" 。试试这个:
Form1 frm = Application.OpenForms.OfType<Form1>().Take(1).FirstOrDefault();
if (frm != null)
{
//Populate all your properties here:
frm.viewItem1 = name;
}