如何关闭子窗体时如何更改MDIParent控件的外观?

时间:2014-08-19 10:40:27

标签: c# winforms

我有一个名为frmMain的MDIParent表单。它有一个带2个按钮的面板,比如btnChild1和btnChild2。在btnChild1的Click事件中,我打开了一个frmChild1并更改了btnChild1的颜色。现在当frmChild1关闭时,我希望将btnChild1.BackColor设置为透明。但我不知道在哪种情况下我必须编码。请指导我?

2 个答案:

答案 0 :(得分:0)

您可以通过处理MDI父表单中的frmChild1 FormClosed事件对此进行归档,如下所示

 private void button1_Click(object sender, EventArgs e)
 {
     Form2 childForm = new Form2();
     childForm.MdiParent = this;
     childForm.FormClosed += childForm_FormClosed;
     this.button1.BackColor = Color.Red;
     childForm.Show();
 }

 void childForm_FormClosed(object sender, FormClosedEventArgs e)
 {
     this.button1.BackColor = Color.Transparent;
 }

答案 1 :(得分:0)

你可以这样做..

1.在frmMain中将按钮的可见性更改为Public。

2.在frmChild1的OnClose()事件中执行:

(this.MdiParent as frmMain).btnChild.BackColor =“RequiredColor”;

这违反了面向对象的编程概念。

另一种方法是将你的frmChild1显示为对话框,因此只有在frmChild关闭之后控件才会被转移回frmMain,然后将按钮颜色更改为你的要求。