我想从另一种形式更新主窗体的组合框 这是我在form_load
中的主要形式组合框更新代码public void main_Load(object sender, EventArgs e)
{
try
{
OleDbDataAdapter db = new OleDbDataAdapter("select * from category", con);
ds_cmbGroup.Clear();
cmbGroup.DataSource = null;
db.Fill(ds_cmbGroup, "t1");
cmbGroup.DisplayMember = "catname";
cmbGroup.ValueMember = "catcode";
cmbGroup.DataSource = ds_cmbGroup.Tables["t1"];
}
catch (Exception ex)
{
}
}
因为我以自己的形式调用此方法,它正确运行。这是调用它的代码:
main_Load(this, null);
但是当我从另一个表单中调用它时(虽然数据集更新没有问题)但它不会更改组合框(cmbGroup)内容 这是从第二种形式加载main_Load方法的代码:
main Main = new main();
Main.main_Load(this, null);
先谢谢
答案 0 :(得分:4)
问题是你没有引用主表单的当前实例,但你在第二个表单上创建了一个新的instace:
Main obj = (Main)Application.OpenForms["Main"];
然后使用obj
来引用main Form