我需要在我的一个子表单活动中重新加载Mdi Parent表单。
我使用了以下代码,但它无效
//Child form even
private void btnChange_Click(object sender, EventArgs e)
{
this.ParentForm.Refresh();
}
什么是解决方案,请任何人建议我。
答案 0 :(得分:0)
1)您必须确保MDI父表单的属性IsMdiContainer
设置为true
。
2)您必须确保子表单的MdiParent
属性设置为父表单:
ChildForm child = new ChildForm();
child.MdiParent = this;
child.Show();
3)然后,您可以从具有MdiParent
属性的孩子访问MDI父级:
this.MdiParent.Refresh(); // or this.MdiParent.Invalidate();
答案 1 :(得分: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();
答案 2 :(得分:-1)
使用下面的父表单代码重新绘制UI,
this.Controls.Clear();
this.InitializeComponent();