繁体   English   中英

面板无法在MDI中将可见设置为True

[英]Panel Could not set Visible True in MDI

我正在使用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。 我设置为true。,请参阅我的代码。

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

我也使用BringToFrontSendToBack 没用 请协助。

问题是:

  • 您可以使用MDI子窗体中创建MDI窗体的新实例MDI md = new 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;
>         }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM