0

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

我使用了下面的代码,但它不起作用

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

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

4

3 回答 3

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();
于 2013-03-05T11:04:08.503 回答
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 回答
-1

在父表单中使用以下代码重新绘制 UI,

this.Controls.Clear();

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