从子表单重新加载MDI Parent

时间:2013-03-05 10:40:34

标签: c# winforms

我需要在我的一个子表单活动中重新加载Mdi Parent表单。

我使用了以下代码,但它无效

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

什么是解决方案,请任何人建议我。

3 个答案:

答案 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();