0

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

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

当我单击按钮时,他们会打开另一个子表单并将可见的 false 设置为面板,如下所示(示例代码):

private void Button_Click(object sender, EventArgs e)
{
    panel1.Visible = false;

    ChildForm Form2 = new ChildForm();
    Form2.WindowState = FormWindowState.Maximized;           
    Form2.Show();
}

现在他们完美地工作了。问题是,当我关闭子窗体时,面板在 MDI 父窗体中不可见。它总是面板可见的错误。我设置为true。,请参阅我的代码。

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

我也在使用BringToFront, SendToBack。没用。请协助。

4

2 回答 2

1

问题是:

  • 您在子表单中创建一个新的MDI 表单实例MDI md = new MDI();

    相反,您应该检索打开的MDI的实例并md.panel1.Visible = true;在此实例上进行设置。您可以使用该MdiParent物业。

    MDI md = (MDI)this.MdiParent;
    md.panel1.Visible = true;
    
  • 并且您This.Dispose在设置面板可见的代码之前调用。我不确定后面的代码是否This.Dispose会被执行......

于 2013-06-23T09:01:10.473 回答
-1

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

>  private void ChildForm_FormClosed(object sender,FormClosedEventArgs e)
>         {
>             MDI md = (MDI)this.MdiParent;
>             md.panel1.Visible = true;
>         }
于 2013-06-23T13:53:51.880 回答