在一个窗体内调用另一个窗体的函数为何会失败?
本帖最后由 foxd 于 2013-03-01 16:45:13 编辑
我的程序主界面窗体frmMain中有一个setUserRights()的函数,另有frmLogin和frmZXCX这两个子窗体,在这两个子窗体内都需要调用主窗体frmMain中的setUserRights()函数。我在frmLogin窗体中调用获得成功而在frmZXCX窗体中调用却失败了。
在frmLogin窗体中,我用:
namespace Weighing
{
public partial class frmLogin : Form
{
frmMain frm;
public frmLogin(Form f) : this()
{
frm = (frmMain)f;
}
......
void Button1_Click()
{
frm.setUserRights(); //本句调用成功
}
}
}
而在frmZXCX这个子窗体我是照猫画虎地写代码,如:
namespace Weighing
{
public partial class frmZHCX : Form
{
frmMain frm;
public frmZHCX(Form f) : this()
{
frm = (frmMain)f;
}
......
void Button1_Click()
{
frm.setUserRights(); //本句调用不成功
}
}
}
结果却报错,说是
未将对象引用设置到对象的实例。Why? 谢谢!
------解决方案--------------------frmZHCX 生成对象的时候。你把frmMain 传过来了?
看你怎么调用的
------解决方案--------------------结果却报错,说是未将对象引用设置到对象的实例。
错误都报给你了。。。
frm.setUserRights(); //本句调用不成功 这里的frm 是null 没有传到这个窗体
------解决方案--------------------你是怎么实例化对象的,
在frmMain中
frmZHCX aa=new frmZHCX(this);
aa.show()吗?
------解决方案--------------------public static