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;
}
我也使用BringToFront
、SendToBack
。没用。请协助。
问题是:
-
使用
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;
> }