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) の内容は変更されません。これは、2 番目のフォームから main_Load メソッドをロードするコードです。

main Main = new main();
Main.main_Load(this, null);

前もって感謝します

4

1 に答える 1

4

問題は、メイン フォームの現在のインスタンスを参照せずに新しいインスタンスを作成し、2 番目のフォームで試してみることです。

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

そしてobj参照するために使用しますmain Form

于 2013-04-02T15:30:12.527 に答える