C#子窗体关闭时怎么使父窗口中的控件也随之改变。

如题所述

子窗体定义一个委托,父窗体实例化子窗体时注册子窗体的委托事件(具体方法实现父窗口的控件变化),子窗体关闭时调用事件方法。追问

这个事件方法怎么调用原来子窗口中的数据?

追答

示例
父窗体
public void ShowPopWindow()
{
TestA sub = new TestA();
sub.CloseWindow += new Action(sub_CloseWindow);
sub.show();
}

void sub_CloseWindow()
{
//改变父窗体控件内容
}

子窗体
public class TestA
{
public event Action CloseWindow;

protected virtual void OnCloseWindow()
{
Action handler = CloseWindow;
if (handler != null) handler();
}

//子窗体关闭事件
private void CloseSubWindow()
{
OnCloseWindow();
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-09
父窗体:
private void testToolStripMenuItem_Click(object sender, EventArgs e)
{

FormChild child = new FormChild();
//新建一个窗体
child.MdiParent = this;
child.CloseWindow += new Action(sub_CloseWindow);
child.Show();

}
void sub_CloseWindow()
{
//改变父窗体控件内容

}
子窗体:
public FormChild()
{
InitializeComponent();
}
public event Action CloseWindow;
private void FormChild_FormClosing(object sender, FormClosingEventArgs e)
//子窗体退出事件
{
Action handler = CloseWindow;
if (handler != null) handler();
}
相似回答