1

我想从另一个表单更新主表单的组合框这是我的主表单组合框更新代码,它位于 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);

提前致谢

4

1 回答 1

4

问题是您没有引用主表单的当前实例,而是创建了一个新实例,在第二种表单上尝试:

 Main  obj = (Main)Application.OpenForms["Main"];

然后obj用来指代main Form

于 2013-04-02T15:30:12.527 回答