如题,
程序有两个窗体,form2的button删除本窗体并在form1的listview控件中删除一行。
frm.tip是本form2的列数号码。
在执行的时候 frm.listView1.Items.RemoveAt(frm.tip);中断了
弹出异常:
未处理的“System.NullReferenceException”类型的异常出现在 Notes.exe 中。 其他信息: 未将对象引用设置到对象的实例。form1 frm
private void buttion1_click(object sender, EventArgs e)
{
if (MessageBox.Show("是否要删除标签\n删除标签后将不能恢复", "删除提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) != DialogResult.OK) ;
else
{
frm.listView1.Items.RemoveAt(frm.tip);
this.Dispose();
}
}
程序有两个窗体,form2的button删除本窗体并在form1的listview控件中删除一行。
frm.tip是本form2的列数号码。
在执行的时候 frm.listView1.Items.RemoveAt(frm.tip);中断了
弹出异常:
未处理的“System.NullReferenceException”类型的异常出现在 Notes.exe 中。 其他信息: 未将对象引用设置到对象的实例。form1 frm
private void buttion1_click(object sender, EventArgs e)
{
if (MessageBox.Show("是否要删除标签\n删除标签后将不能恢复", "删除提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) != DialogResult.OK) ;
else
{
frm.listView1.Items.RemoveAt(frm.tip);
this.Dispose();
}
}
你没有获得form1的实例吧
frm=null的话就不能执行了
frm=new form1的话就是新建一个窗体了。
form2窗体在创建的时候,把它的构造函数给改了:
public Form2 ( Form1 frm1 )
{
this.frm = frm1;
}
这样就可以了……
具体怎么构造阿?我两个窗体是不一样的喔
是不是在
public main()
{
InitializeComponent();
}
里面改阿?
这里没有 main() 的事儿吧。main()是定义在 application 类里面的吧,是一个 static 函数。C#的WINFORM编程可和C++不一样呵。你创建一个新 form2 类的时候,不是有构造函数么?构造函数……你知道吧……
不好意思,我之前的窗体名称叫main,所以我搞错了。
但是构造函数后,frm1这个参数是什么意思阿?
public Form2(Form1 frm1)
{
this.frm = frm1;
}构造Form2的函数干什么呢?
我要建的是Form1阿~我要调用的是Form1里面的东西。
我构造了Form1的函数
但是在form2里面Form frm = new Form1(frm);貌似没有效果喔~
我是初学的~不太懂~
http://hi.baidu.com/zhaoxintj/blog/item/30de1d22792915fbd7cae2d8.htm不过还是谢谢你们了