Panel无法在MDI中设置Visible True

本文关键字:设置 Visible True MDI Panel | 更新日期: 2023-09-27 18:19:28

我正在使用C#。Net Windows应用程序。

我有一个MDI父窗体和许多子窗体。我把面板放在MDI父窗体中,并在面板内拖动几个按钮。

当我单击按钮时,他们打开另一个子窗体,并将visible设置为false像这样(示例代码):

private void Button_Click(object sender, EventArgs e)
{
    panel1.Visible = false;
    ChildForm Form2 = new ChildForm();
    Form2.WindowState = FormWindowState.Maximized;           
    Form2.Show();
}

现在他们工作得很好。问题是,当我关闭子窗体时,面板在MDI父窗体中不可见。它总是面板可见false。我设定为真。,查看我的代码。

private void ChildForm _FormClosed(object sender, FormClosedEventArgs e)
{
     this.Dispose();
     MDI md = new MDI();
     md.panel1.Visible = true;
}

我也使用BringToFrontSendToBack。没用。请协助。

Panel无法在MDI中设置Visible True

问题是:

  • 使用MDI md = new MDI();子窗体中创建MDI窗体

    您应该检索打开的MDI的实例,并在此实例上设置md.panel1.Visible = true;。可以使用MdiParent属性。

    MDI md = (MDI)this.MdiParent;
    md.panel1.Visible = true;
    

  • 并且您在设置面板可见的代码之前调用This.Dispose。我不确定This.Dispose之后的代码是否会被执行。。。

嗨,朋友们,我解决了这个问题,现在我开始工作了。。。这里是解决方案。。

>  private void ChildForm_FormClosed(object sender,FormClosedEventArgs e)
>         {
>             MDI md = (MDI)this.MdiParent;
>             md.panel1.Visible = true;
>         }