winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体
winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下:
一 、 所有权法
父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始化方法。如:
public void reLoad_method()
{
//窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
}
fuForm中打开ziForm时需要设置所有者,就是ziForm的所有者是fuForm,代码如下:
ziForm _ziForm = new ziForm ();
_ziForm.Owner = this;
_ziForm.ShowDialog();
ziForm关闭或者需要刷新fuForm时,代码如下:
fuForm _fuForm ;
_fuForm = (fuForm )this.Owner;
_fuForm.reLoad_method();
二、自身传递法
在父窗体中有个公共刷新方法,如:
public void reLoad_method()
{
//窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
}
父窗体打开子窗体方法代码:
ziForm _ziForm = new ziForm() ;
_ziForm.ShowDialog(this) ;
子窗体中:
private fuForm _fuForm;
public ziForm(fuForm fromfuForm)
{
InitializeComponent();
_fuForm = fromfuForm;
}
//刷新时
_fuForm.reLoad_method();
三、属性法
在父窗体中有个公共刷新方法,如:
public void reLoad_method()
{
//窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
}
父窗体打开子窗体方法代码
ziForm _ziForm = new ziForm() ;
_ziForm.fuFormX = this;
_ziForm.Show() ;
子窗体中:
private fuForm fuFormXy;
public fuForm fuFormX
{
get{return fuFormXy;}
set{fuFormXy = value;}
}
//刷新时
fuFormXy.reLoad_method() ;
四、委托法
在父窗体中有个公共刷新方法,如:
public void reLoad_method()
{
//窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
}
父窗体打开子窗体方法代码
ziForm _ziForm = new ziForm();
_ziForm.ShowUpdate += new DisplayUpdate(reLoad_method);
_ziForm.Show();
子窗体中:
//声明一个委托
public delegate void DisplayUpdate();
//声明事件
public event DisplayUpdate ShowUpdate;
//刷新时,放在需要执行刷新的事件里
ShowUpdate();
在以上几个方法中,个人认为第一个所有权法最好用,容易理解,而且代码简洁,推荐使用第一种方法。
winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体的更多相关文章
- SpringMVC中redirect跳转后如何保存Model中的数据?
@RequestMapping(value = "delete-user", method = RequestMethod.POST) public String deleteUs ...
- dev控件 xtraTabbedMdiManager 如何将关闭子窗体改为收回主窗体内
前言 本文主要讲解 xtraTabbedMdiManager 如何将关闭子窗体改为收回主窗体内,顺便附上Float(浮动)的时候使窗体最大化,及指定只能某一个子窗体能浮动放大. 下面进入正题. 一.首 ...
- [译]GLUT教程 - 创建和关闭子窗体
Lighthouse3d.com >> GLUT Tutorial >> Subwindows >> Creating and Destroying Subwind ...
- C# 关闭子窗体释放子窗体对象问题
1 在主窗口中实例化子窗口 Form2 f2 = new Form2(); 2 通过按钮来显示子窗口 f2.Show(); 3 关闭子窗口而不释放子窗口对象的方法 protected override ...
- 更新记录后关闭子窗口并刷新父窗口的Javascript
有时我们需要在新打开的窗口里面编辑信息,等编辑完了,需要将当前窗口关闭并且刷新父窗口,以使修改生效,本文就是介绍用 javascript 来实现"更新记录后关闭子窗口并刷新父窗口" ...
- 12月8日phpcms添加子栏目后的读取
一个栏目下面如果没有子栏目,那么它调用的模板就是列表页模板(及list_为前缀的模板):如果一个栏目下面有子栏目,那么它调用的就是栏目首页模板(category_为前缀的模板). 所以,当你这个栏目添 ...
- 关闭“编辑窗体”后, 主窗体的DatagridView刷新数据的问题
问题:在关闭一个窗体2后,要刷新窗体1内的datagridview的数据,直接窗体1.datagridview.datasource=dt 是没用的. 解决办法如下: 在主窗体里 创建编辑窗体时 加上 ...
- phpcms添加子栏目后的读取
一个栏目下面如果没有子栏目,那么它调用的模板就是列表页模板(及list_为前缀的模板):如果一个栏目下面有子栏目,那么它调用的就是栏目首页模板(category_为前缀的模板). 所以,当你这个栏目添 ...
- C# WebService中任务处理线程创建子线程后
protected void WriteLog(string message) { lock (lockObject) { var file = System.IO.File.AppendText(& ...
随机推荐
- 【RobotFramework自动化测试】数据库值验证
${sqlCount} Row Count ${sqlStr} #注释:Row Count 将SQL查询结果的行数返回给前面的参数: @{rs} query ${sqlS ...
- C#获得网络连接信息 IPGlobalProperties
IPGlobalProperties 提供有关本地计算机的网络连接的信息. 此类提供有关本地计算机的网络接口和网络连接的配置和统计信息 可以获取本机TCP UDP 丢包 发包等数据. 此类提供的信息与 ...
- LayaAir引擎——(十一)
var c = new Array(); var d = new Array(); var e = new Array(); var f = new Array(); var g = new Arra ...
- jQuery 遍历 - each() 方法
定义和用法 each() 方法规定为每个匹配元素规定运行的函数. 提示:返回 false 可用于及早停止循环. 语法 $(selector).each(function(index,element)) ...
- Network Assistant (Alpha)版使用说明
Network Assistant (网络助手)使用说明 本软件是一款帮助同学方便Ip更改,小蝴蝶断线重连,一键wifi,定时关机的软件.它集成 ...
- Linux学习之路—Linux目录配置
所有内容来自鸟哥私房菜 FHS标准的重点在于规范每个特定的目录下应该要放置什么样子的数据而已.事实上,FHS针对目录树架构仅仅定义三层目录下面应该放置什么数据,分别是: /(root,根目录):与开机 ...
- 转载:Android横屏竖屏切换的问题
一.禁止横竖屏转换 Android横竖屏切换在手机开发中比较常见,很多软件在开发过程中为了避免横竖屏切换时引发不必要的麻烦,通常禁止掉横竖屏的切换, 通过在AndroidManifest.xml中设置 ...
- 可能是Mac环境变量恢复的参考
因为要做物联网实验的缘故,于是在Mac上用Android Studio想导入SensorSimulator的demo项目. 根据SensorSimulator的相关说明,需要先将Sensor Simu ...
- junit单元测试(keeps the bar green to keeps the code clean)
error是程序错误,failure是测试错误. junit概要: JUnit是由 Erich Gamma (设计模式的创始人)和 Kent Beck (敏捷开发的创始人之一)编写的一个回归测试框架( ...
- jade转化为html
网址:http://www.html2jade.org/ 刚到一家新的公司 ,上一个前段PHP写的代码基本都是jade写的,看的一脸懵逼,第一次遇到jade代码,并且我一直用的是atom开发工具,安装 ...