Winform中如何实现子窗体刷新父窗体
原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一.窗体展示
首先我们看到是一个父窗体,我们可以看到左边是一个[树控件],我们将点击[添加大类]和[添加字典]时调出子窗体

接下来是子窗体展示,当我们点击取消或者关闭按钮时,我们需要看到我们添加或者修改的数据能展示出来,这就是我们要做的事
.
二.代码展示
首先是子窗体中的代码,我们需要定义一个委托和事件
//定义委托
public delegate void Refresh(); //定义事件
public event Refresh myRefresh;
其次是父窗体的代码,我们需要定义一个刷新的方法
/// <summary>
/// 刷新控件信息
/// </summary>
/// <author>PengZhen</author>
/// <time>2013-10-25 14:46:21</time>
private void RefreshControl()
{
//绑定树信息
BindTree();
}
当上面两步完成之后,我们就要就行调用,进行刷新操作了
首先是父窗体中的代码,当我们点击[添加大类]或者[添加字典]时在相应的按钮事件中添加如下代码
//子窗体
ChildForm objCF= new ChildForm();
//定阅这个事件
objCF.myRefresh += new ChildForm.Refresh(RefreshControl);
//展示子窗体
objCF.ShowDialog();
其次是子窗体的代码,当我们点击[取消]或者[关闭窗体]时在相应的按钮事件中添加如下代码
取消:
/// <summary>
/// 取消
/// </summary>
/// <author>PengZhen</author>
/// <time>2013-10-23 15:15:57</time>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btCancel_Click(object sender, EventArgs e)
{ this.Close(); //关闭的时候执行事件
myRefresh();
}
关闭事件
/// <summary>
/// 用户点击关闭窗体后执行操作
/// </summary>
/// <author>PengZhen</author>
/// <time>2013-10-25 15:00:45</time>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DataDictionaryInfoFrm_FormClosed(object sender, FormClosedEventArgs e)
{
//关闭的时候执行事件
myRefresh();
}
OK,写到这基本都完成了,有木有发现非常简单呢
Winform中如何实现子窗体刷新父窗体的更多相关文章
- winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体
winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始 ...
- Winform子窗体刷新父窗体
调用窗体(父):Form1,被调用窗体(子):Form2方法1: 所有权法//Form1://需要有一个公共的刷新方法public void Refresh_Method(){//...} ...
- Winfrom子窗体刷新父窗体
本人比较懒,直接从网上转载了一篇比较合适的文章,只是文章格式有点乱,地址是 http://aspnet.blog.163.com/blog/static/17515510920121126104433 ...
- (转载)c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值
第一种方法: 用委托,Form2和Form3是同一组 Form2 C#代码 using System; using System.Collections.Generic; using System.C ...
- [转]- Winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值
转自:http://heisetoufa.iteye.com/blog/382684 第一种方法: 用委托,Form2和Form3是同一组 Form2 using System; using Sys ...
- javactript关闭窗体,刷新父窗体
//关闭,父窗口弹出对话框,子窗口直接关闭this.Response.Write("<script language=javascript>window.close();< ...
- winform 子窗体刷新父窗体的数据
建一个接口 比如 iMainForm接口内声明个方法 比如 Refresh()主窗体 实现这个接口 主窗体打开子窗体时这样写 子窗体.Owner = this;子窗体.ShowDialog(); -- ...
- WinForm------关于子窗体刷新父窗体问题
链接: http://wenwen.sogou.com/z/q242758397.htm
- winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法
最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操 ...
随机推荐
- ios理解 -- Pro Mutlithreading and Memory Management for iOS and OS X with ARC, Grand Central Dispatch, and Blocks
Capturing automatic variables Next, you need to learn what the “together with automatic (local) vari ...
- C# 字典 Dictionary<Tkey,Tvalue>
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来.我们都知道计算机技术发展日新月异,速度惊人的快,你我稍不留神,就会被慢慢淘汰!因此:每日不间断的学习是避免被 ...
- Java Servlet(一):创建工程(jdk7+tomcat7+eclipse)
本篇文件主要记录下怎么在jdk7+tomcat7下,使用eclipse创建并运行一个servlet工程. 安装具体步骤从网上搜索就可以找到,这里不再赘述. 在eclipse中切换到j2ee下, 从导航 ...
- SQL order 排序
select * from emp;
- 转:JAVA强制类型转换
object对象转换为String的一些总结 ----------------------------------------------------------------------------- ...
- C++向量(Vector)
向量Vector: 向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器. 与string相同, vector 同属于STL(Standard Template L ...
- linux第12天 线程
今天主要学习了共享内存,信号量的封装,还有线程. POSIX线程库 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的 要使用这些函数库,要通过引入头文<p ...
- 用xml添加动画
在res文件夹下新建anim文件夹 在anim文件夹新建anim.xml anim.xml: <?xml version="1.0" encoding="utf-8 ...
- 生成apache证书(https应用)
# cd /usr/local/apache2/conf# tar zxvf ssl.ca-0.1.tar.gz# cd ssl.ca-0.1生成根证书:# ./new-root-ca.sh ...
- CentOS 5.5 Nginx+JDK+MySQL+Tomcat(jsp)成功安装案例
在CentOS 5.5中安装Nginx+jdk+mysql+tomcat是非常容易的.只需yum安装环境包和nginx.解压安装jdk和tomcat.配置profile文件.server.xml和ng ...