在c#中从另一个表单更新组合框

时间:2013-04-02 15:25:07

标签: c#

我想从另一种形式更新主窗体的组合框 这是我在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);

先谢谢

1 个答案:

答案 0 :(得分:4)

问题是你没有引用主表单的当前实例,但你在第二个表单上创建了一个新的instace:

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

然后使用obj来引用main Form

相关问题