【问题标题】:Panel Could not set Visible True in MDI面板无法在 MDI 中设置 Visible True
【发布时间】:2013-06-23 08:29:58
【问题描述】:

我正在使用 C#。 Net 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;
}

我也使用BringToFrontSendToBack。没用。请帮忙。

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    问题是:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-03
        • 2012-07-13
        • 1970-01-01
        • 2017-05-06
        • 1970-01-01
        相关资源
        最近更新 更多