C#子窗体关闭时怎么使父窗口中的控件也随之改变。
2个回答
展开全部
子窗体定义一个委托,父窗体实例化子窗体时注册子窗体的委托事件(具体方法实现父窗口的控件变化),子窗体关闭时调用事件方法。
追问
这个事件方法怎么调用原来子窗口中的数据?
追答
示例
父窗体
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();
}
}
展开全部
父窗体:
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();
}
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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询