[英]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;
}
我也使用BringToFront
, SendToBack
。 没用 请协助。
问题是:
您可以使用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.