首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

子窗体关闭时能不能调用父窗体的方法?解决思路

2012-02-25 
子窗体关闭时能不能调用父窗体的方法?如题, 我子窗体是用SHOW()的方法调出来的.我想在它关闭的时候调用父

子窗体关闭时能不能调用父窗体的方法?
如题, 我子窗体是用SHOW()的方法调出来的.我想在它关闭的时候调用父窗体的一些方法.如告诉父窗体他关闭了.
请问怎么设计啊? 谢谢

[解决办法]
不是子窗体有事件么?
在父窗体中用子窗体的关闭事件就可以了啊。

C# code
        private void button1_Click_1(object sender, EventArgs e)        {            Form1 frm = new Form1();            frm.Closed += new EventHandler(frm_Closed);            frm.Show();        }        void frm_Closed(object sender, EventArgs e)        {            //调用到这的话表示Form1已经关闭了        }
[解决办法]
使用全局变量是很不好的设计.
如果想使用子窗口的什么数据的话,可以把sender参数as成子窗口类型, 就能使用子窗口的数据了.
C# code
public class ParentForm : Form{    private void MyFunction()    {        ChildForm child = new ChildForm();        child.Closed += new EventHandler(child_Closed);        child.Show();    }    private void child_Closed(object sender, EventArgs e)    {        ChildForm a = sender as ChildForm;        MessageBox.Show(a.MyAttribute);   // 这里就可以使用子窗口对象的数据了    }}public class ChildForm : Form{    public String MyAttribute    {        get        {            return "ChildForm ";        }    }} 

热点排行