原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们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中如何实现子窗体刷新父窗体的更多相关文章

  1. winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体

    winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始 ...

  2. Winform子窗体刷新父窗体

    调用窗体(父):Form1,被调用窗体(子):Form2方法1:   所有权法//Form1://需要有一个公共的刷新方法public   void   Refresh_Method(){//...} ...

  3. Winfrom子窗体刷新父窗体

    本人比较懒,直接从网上转载了一篇比较合适的文章,只是文章格式有点乱,地址是 http://aspnet.blog.163.com/blog/static/17515510920121126104433 ...

  4. (转载)c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值

    第一种方法: 用委托,Form2和Form3是同一组 Form2 C#代码 using System; using System.Collections.Generic; using System.C ...

  5. [转]- Winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值

    转自:http://heisetoufa.iteye.com/blog/382684 第一种方法: 用委托,Form2和Form3是同一组 Form2  using System; using Sys ...

  6. javactript关闭窗体,刷新父窗体

    //关闭,父窗口弹出对话框,子窗口直接关闭this.Response.Write("<script language=javascript>window.close();< ...

  7. winform 子窗体刷新父窗体的数据

    建一个接口 比如 iMainForm接口内声明个方法 比如 Refresh()主窗体 实现这个接口 主窗体打开子窗体时这样写 子窗体.Owner = this;子窗体.ShowDialog(); -- ...

  8. WinForm------关于子窗体刷新父窗体问题

    链接: http://wenwen.sogou.com/z/q242758397.htm

  9. winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法

    最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操 ...

随机推荐

  1. Linux-QT 开发环境搭建以及编译镜像

    搭建Linux-QT 开发环境,需要先搭建Android 的编译环境,然后在Android 编译环境的基础上,再搭建Linux-QT 编译环境. 第一:编译器. 第二:设置环境变量.环境变量设置后,编 ...

  2. 12C RAC中的一个数据库实例自动crash并报ORA-27157、ORA-27300等错误

    rhel7.2上安装12C RAC数据库后,其中一个数据库实例经常会自动crash.查看alert日志发现以下错误信息: Errors in file /d12/app/oracle/diag/rdb ...

  3. 鼠标放上去,不同的cursor光标类型

    <!DOCTYPE html><html lang="zh-cmn-Hans"><head><meta charset="utf ...

  4. 异常积累:org.hibernate.StaleStateException

    ERROR - Exception executing batch:  org.hibernate.StaleStateException: Batch update returned unexpec ...

  5. MVVM框架思想

    1.MVVM是什么? M:模型 V:视图 VM:视图模型 简单理解:mvc是一个cell面向一个model开发 mvvm是一个cell面向一个viewModel开发, viewModel里面又包含mo ...

  6. 研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)

    综合研究:      在这部分内容中,将启示我们如何进行独立研究和深度思考(一定要注意这一点,相应的调整自己的学习思想).同时使我们:          (1)认识到汇编语言对于深入理解其他领域知识的 ...

  7. int 与 Integer--话说数组转集合

    话说是自从JDK5后,而这就可以自动进行类型转换了. 当然,区别还是有的,就是对象和“非对象”什么的.可是,今天进行一个测试,出了一个小问题,现将代码贴下: 代码0:先来一个正常点的,用String进 ...

  8. html 字体加粗

    <font style="font-weight: bold;">无敌小昆虫</font> <font>无敌小昆虫</font> f ...

  9. 转:Curl详解

    用途说明 curl命令是一个功能强大的网络工具,它能够通过http.ftp等方式下载文件,也能够上传文件.其实curl远不止前面所说的那些功能,大家可以通过man curl阅读手册页获取更多的信息.类 ...

  10. paper 36 :[教程] 基于GridSearch的svm参数寻优

    尊重原创~~~ 转载出处:http://www.matlabsky.com/thread-12411-1-1.html 交叉验证(Cross Validation)方法思想简介http://www.m ...