我正在使用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;
}
我也在使用BringToFront
,SendToBack
。没用请协助。
答案 0 :(得分:1)
问题是:
您使用MDI md = new MDI();
您应该检索已打开的 MDI 的实例,并在此实例上设置md.panel1.Visible =
true;
。您可以使用MdiParent
属性。
MDI md = (MDI)this.MdiParent;
md.panel1.Visible = true;
然后在设置面板可见的代码之前调用This.Dispose
。我不确定This.Dispose
之后的代码是否会被执行...
答案 1 :(得分:-1)
朋友们,我解决了这个问题,现在我得到了工作...... 这里解决方案..
> private void ChildForm_FormClosed(object sender,FormClosedEventArgs e)
> {
> MDI md = (MDI)this.MdiParent;
> md.panel1.Visible = true;
> }