C# 关闭子窗体释放子窗体对象问题
2021-07-13 18:07
标签:baidu send 调用 nts 变化 key comm tty protected
1 在主窗口中实例化子窗口
Form2 f2 = new Form2();
2 通过按钮来显示子窗口
f2.Show();
3 关闭子窗口而不释放子窗口对象的方法
protected override void Dispose(bool disposing) { Hide(); //if (disposing && (components != null)) //{ // components.Dispose(); //} //base.Dispose(disposing); }
(注意:在子窗口Designer文件中修改)
4 在父窗口关闭时销毁子窗口对象
子窗口类中添加的关闭函数如下:
public void Close() { this.Dispose(); }
父窗口关闭是销毁子窗口对象,因此,在父窗口的关闭动作FormClosed中添加调用子窗口f2的销毁函数。
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
f2.Close();
}
===================================================================================
另外还有一种方式:
父窗体
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();
}
}
出处:https://zhidao.baidu.com/question/134623114688436765.html
========================================================================
C# 关闭子窗体释放子窗体对象问题
标签:baidu send 调用 nts 变化 key comm tty protected
原文地址:https://www.cnblogs.com/XuPengLB/p/9560574.html
上一篇:WPF 3D变换应用
文章标题:C# 关闭子窗体释放子窗体对象问题
文章链接:http://soscw.com/index.php/essay/104746.html