子フォーム イベントの 1 つで Mdi 親フォームをリロードする必要があります。
以下のコードを使用しましたが、機能していません
//Child form even
private void btnChange_Click(object sender, EventArgs e)
{
this.ParentForm.Refresh();
}
解決策は何ですか、誰かが私に提案してください。
親フォームのイベントの本体を実行すること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();
IsMdiContainer
1) MDI 親フォームのプロパティが に設定されていることを確認する必要がありますtrue
。2) 子フォームのプロパティが親フォームに設定されて
いることを確認する必要があります。MdiParent
ChildForm child = new ChildForm();
child.MdiParent = this;
child.Show();
MdiParent
3) 次に、次のプロパティを使用して、子から MDI 親にアクセスできます。
this.MdiParent.Refresh(); // or this.MdiParent.Invalidate();
UI を再描画するには、親フォームで以下のコードを使用します。
this.Controls.Clear();
this.InitializeComponent();