C# 关闭子窗体释放子窗体对象问题
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# 关闭子窗体释放子窗体对象问题的更多相关文章
- C#中关闭子窗口而不释放子窗口对象的方法
1 在主窗口中实例化子窗口 在主窗口中实例化子窗口,而不是在按钮中实例化子窗口对象. Form2 f2 = new Form2(); 2 通过按钮来显示主窗口 在按钮中需要实现的是窗口的显示 priv ...
- C#关闭子窗口而不释放子窗口对象的问题解决
在网上找来一些方式,感觉还都不错,下面给出方式: 在线扫描相机的调试过程中,需要开辟调试界面来进行位置的配置.调试结束后,一种常用的方式是将调试参数保存并在下次启动时加载.另一种简单方式是直接使用该参 ...
- winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体
winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始 ...
- Caliburn.Micro 关闭父窗体打开子窗体
比如我们在做登录的时候需要关闭父窗体打开子窗体.使用Caliburn.Micro它的时候我们关闭登录窗口的时候主页面也会关闭. 解决方法就是在登录页面的CS里面写 IndexView iv = new ...
- C# 实现子窗体控制父窗体的方法
我们来实现这样一个功能:当父窗体打开一个子窗体时隐藏父窗体的Panel,而当子窗体关闭时让Panel显示.实现的主要思路是创建一个子窗体的父类并在类中声明一个委托,当父窗体调用子窗体时绑定显示P ...
- C#多线程应用:子线程更新主窗体控件的值(二)
在上篇文章中,我已经给大家列了一个在主线程中实现的方式,这篇文章来给大家说说使用Invoke的方式的例子: 对于不代理不太熟悉的朋友,建议先查查相关资料: 例子一: 在C#中,直接在子线程中对窗体上的 ...
- winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法
最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操 ...
- js子窗体、父窗体方法互调
var childWindow = $("#editFrame")[0].contentWindow;//获取子窗体的window对象. childWindow.subForm() ...
- Winfrom子窗体刷新父窗体
本人比较懒,直接从网上转载了一篇比较合适的文章,只是文章格式有点乱,地址是 http://aspnet.blog.163.com/blog/static/17515510920121126104433 ...
随机推荐
- 软件毕业设计文档流程与UML图之间的关系
每个模型都是用一种或者多种UML图来描述的,映射关系如下: 1.用例模型:使用用例图.顺序图.通信图.活动图和状态图来描述. 2.分析模型:使用类图和对象图(包括子系统和包).顺序图(时序图).通信图 ...
- 嵌入式常用技术概览之SPI
一.先决知识 (1)理解并知道移位寄存器如何工作 二.SPI概述 SPI(serial Peripheral Interface 串行片上(外围)设备接 ...
- 如何将AAC音频转换成MP3格式
我们应该怎样将AAC音频转换成MP3格式呢?AAC是一种专为声音数据设计的文件压缩格式,相对于MP3音频来说更加高效,性价比跟高.但是因为MP3音频格式的通用性,我们还是时常需要将AAC音频转换成MP ...
- C和C指针小记(十七)-使用结构和指针-链表
1.链表 链表(linked list)即使是一些包含数据的独立数据结构的(Node)集合. 链表中的每个节点通过链或指针链接在一起. 程序通过指针访问链表中的节点. 节点通常是动态分配的,但也有由节 ...
- 分库分表、读写分离——用Sql和ORM(EF)来实现
分库:将海量数据分成多个库保存,比如:2017年的订单库——Order2017,2018年的订单库——Order2018... 分表:水平分表(Order拆成Order1.....12).垂直分表(O ...
- weui开发笔记
1.标准的weui只是一个css皮肤,当然里面有h5特性所以有一些很好的组件,比如时间选择控件.数字输入框(用于手机号等),在ios——微信中可以做到完美的展示. 2.ui框架以手机移动端为优先显示( ...
- mysql使用存储过程和event定期删除
-- 创建存储过程DELIMITER //CREATE PROCEDURE del_data()BEGIN DELETE FROM t_route_status WHERE route_date &l ...
- PHP调用接口用post方法传送json数据
1.核心代码: <?php require("helper.php"); header('content-type:text/html;charset=utf-8'); $k ...
- 源码安装Nginx以及用systemctl管理
一.源码安装Nginx: 先安装gcc编译器(安装过的可以忽略) [root@localhost ~]# yum -y install gcc gcc-c++ wget 进入src目录 [root@l ...
- python基础(15)-socket网络编程&socketserver
socket 参数及方法说明 初始化参数 sk = socket.socket(参数1,参数2,参数3) 参数1:地址簇 socket.AF_INET IPv4(默认) socket.AF_INET6 ...