0

子フォーム イベントの 1 つで Mdi 親フォームをリロードする必要があります。

以下のコードを使用しましたが、機能していません

//Child form even
private void btnChange_Click(object sender, EventArgs e)
{
     this.ParentForm.Refresh();
}

解決策は何ですか、誰かが私に提案してください。

4

3 に答える 3

0

親フォームのイベントの本体を実行することLoadだけが必要な場合は、コードを複数回呼び出せるようにクラスを再設計する必要があります。

たとえば、 という名前のフォームがあるとしますForm1

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        InitializeFormData();
    }

    public void InitializeFormData()
    {
        // do the initialization
    }
}

InitializeFormDataこれで、任意の子フォームでメソッドを簡単に呼び出すことができます:

((Form1)this.MdiParent).InitializeFormData();
于 2013-03-05T12:35:04.543 に答える
0

IsMdiContainer1) MDI 親フォームのプロパティが に設定されていることを確認する必要がありますtrue。2) 子フォームのプロパティが親フォームに設定されて
いることを確認する必要があります。MdiParent

ChildForm child = new ChildForm();
child.MdiParent = this;
child.Show();

MdiParent3) 次に、次のプロパティを使用して、子から MDI 親にアクセスできます。

this.MdiParent.Refresh(); // or this.MdiParent.Invalidate();
于 2013-03-05T11:04:08.503 に答える
-1

UI を再描画するには、親フォームで以下のコードを使用します。

this.Controls.Clear();

this.InitializeComponent();
于 2013-03-05T12:08:46.857 に答える