H hhcz Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-06 #1 假设一个mdi程序,主窗体类有一个公共变量frmCnt纪录打开的子窗体数量,如何在子窗体 关闭时使主窗体的frmCnt减一?? 一个窗体关闭时怎样让另一个窗体知道?既是两个独立的窗体实例怎么相互通信?
C chinaplate Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-17 #2 一般情况下,子窗口中都包含到主窗口的引用。 1。对于mdi子窗口 在显示子窗口的时候。 frmMdiChild frm=new frmMdiChild(); frm.MdiParent=this;//当前的mdi主窗口 frm.Show(); 这样在子窗口中,就可以通过这个引用(MdiParent)访问主窗口中的成员。 ((FrmMdiMain)this.MdiParent).AAA=1; 2.对于普通窗口 在显示子窗口的时候。 frmNormalChild frm=new frmNormalChild(); this.AddOwnedForm(frm); frm.Show(); 这样在子窗口中,就可以通过这个引用(Owner)访问主窗口中的成员。 ((FrmMdiMain)this.Owner).AAA=1; 3。有时两个窗口中无法通过上面的两个应用访问的话,可以考虑在需要访问别人的窗口 中定义一个到其它窗口的引用。(道理和上面一样)或通过其他对象来协调处理两个窗口 的通讯。
一般情况下,子窗口中都包含到主窗口的引用。 1。对于mdi子窗口 在显示子窗口的时候。 frmMdiChild frm=new frmMdiChild(); frm.MdiParent=this;//当前的mdi主窗口 frm.Show(); 这样在子窗口中,就可以通过这个引用(MdiParent)访问主窗口中的成员。 ((FrmMdiMain)this.MdiParent).AAA=1; 2.对于普通窗口 在显示子窗口的时候。 frmNormalChild frm=new frmNormalChild(); this.AddOwnedForm(frm); frm.Show(); 这样在子窗口中,就可以通过这个引用(Owner)访问主窗口中的成员。 ((FrmMdiMain)this.Owner).AAA=1; 3。有时两个窗口中无法通过上面的两个应用访问的话,可以考虑在需要访问别人的窗口 中定义一个到其它窗口的引用。(道理和上面一样)或通过其他对象来协调处理两个窗口 的通讯。