0

私は C# のデスクトップ アプリケーションで作業しています。子フォームを追加するためのパネル コントロールを持つ MDI 親フォームがあります。私は2つの子フォームを持っています:

  1. ChildForm1
  2. ChildForm2

Childform2から開かれてchildform1います。

MDI フォームから、childform1 をパネル コントロールに追加します。childform2 も mdi フォーム パネル コントロールに追加したいと考えています。childform1 のボタンをクリックすると、mdi フォーム パネル コントロールから childform1 を削除する必要があり、childform2 が mdi フォーム パネル コントロールに追加されます。

この問題を解決するには?

4

1 に答える 1

0

まず、ChildForm1 の参照を ChildForm2 に渡すことによって、ChildForm1 から ChildForm2 を開きます。

 ChildForm2 objChildForm2 = new ChildForm2(this);
 objChildForm2.MdiParent = this.MdiParent;
 objChildForm2.Show();

ChildForm2 に移動し、Parametrize コンストラクターを追加して、ChildForm1 のグローバル オブジェクトも作成します。

ChildForm1 objChildForm1 = null;

 public ChildForm2(ChildForm1 obj)
    {
        InitializeComponent();

        objChildForm1 = obj; // Passing refrence of ChildForm1
        obj.Hide(); // this will hide the ChildForm1
    }   

ChildForm2 を開くと、obove パラメーター化コンストラクターが呼び出され、ChildForm1 が非表示になります。また、ChildForm2 の終了時に ChildForm1 を再度開くことができます。そのための次のコードを記述します。

    private void btnClose_Click(object sender, EventArgs e)
    {

        objChildForm1.Show();// you can access all public members of ChildForm1 by the Global   //object "objChildForm1"
        this.Close();
    } 
于 2012-09-15T06:15:04.913 に答える