一个winform程序,vs2008的
Form1中代码:Form3 shezhi = new Form3();
shezhi.ShowDialog(this);数据源绑定:comboBox1.DataSource = ds.Tables["服装品牌"];Form3中代码:Form1 fmain;
public Form3(Form1 frm)
{
fmain = frm;
}当combobox的数据源变了后,我直接在Form3中操作数据源的更新
连接数据库,取得dataset....
.....
fmain.comboBox1.DataSource = ds.Tables["服装品牌"];
每次执行到上面这句时就报错:未将对象引用设置到对象实例中。
我改成fmain.comboBox1.datasource=null;还是报一样的错。
各位帮忙看看
Form1中代码:Form3 shezhi = new Form3();
shezhi.ShowDialog(this);数据源绑定:comboBox1.DataSource = ds.Tables["服装品牌"];Form3中代码:Form1 fmain;
public Form3(Form1 frm)
{
fmain = frm;
}当combobox的数据源变了后,我直接在Form3中操作数据源的更新
连接数据库,取得dataset....
.....
fmain.comboBox1.DataSource = ds.Tables["服装品牌"];
每次执行到上面这句时就报错:未将对象引用设置到对象实例中。
我改成fmain.comboBox1.datasource=null;还是报一样的错。
各位帮忙看看
Form3 shezhi = new Form3(this);
shezhi.ShowDialog();
创建Form3的时候,要传递主窗口的引用
public Form3(Form1 frm)
{
fmain = frm;
}
所以fmain就为null了,当你fmain.comboBox1.datasource调用的时候就会出错了~
这样的话,Form3跳出来的就是一个空白的新窗口了,为什么?
public Form3(Form1 frm)
{
fmain = frm;
InitializeComponent();
}
但不赞成这样做,会造成这两个类的相互依赖,实际的程序设计中一般不会这样,会造成这连个类无法单独复用。解决方法:
方法1.等Form3关闭后,刷新Form1。
方法2.增加一个接口,让From3依赖接口,来刷新Form1。