原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们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. nodejs weixin 笔记

    http://www.oschina.net/code/snippet_218887_25870 好文章: http://codelife.me/blog/2013/04/23/developing- ...

  2. time模块学习

    时间三种形式: 1.timestamp   从1970-1-1 00:00到现在经历的秒数 2.string_time   Sat Mar 28 22:24:24 2009 3.struct_time ...

  3. 关于伪类元素:before和:after

    关于伪类元素:before和:after   CSS中存在一些比较特殊的属性,称之为伪类,它们之中最常用的就是定义链接的伪 :link:未被访问状态 :visited:已被访问状态 :hover:鼠标 ...

  4. GTA项目 三, 使用 bootstrap table展示界面,使得data和UI分离

    /** bootstrap-table - v1.5.0 - 2014-12-12* https://github.com/wenzhixin/bootstrap-table* Copyright ( ...

  5. 《30天自制操作系统》11_day_学习笔记

    harib08a: 鼠标的显示问题:我们可以看到,鼠标移到窗口最右侧之后就不能再移动了,而WIN中,鼠标是可以移动到最右边隐藏起来的.怎么办?把鼠标指针显示的范围扩宽就行!我们来修改一下HariMai ...

  6. PostgreSQL Loadbalance Analysis CPU

    Before we can even begin to decide on a processor count, we need a baseline. With a working PostgreS ...

  7. Leetcode: Insert Delete GetRandom O(1) - Duplicates allowed

    Design a data structure that supports all following operations in average O(1) time. Note: Duplicate ...

  8. codevs 1201 最小数和最大数

    http://codevs.cn/problem/1201/ 1201 最小数和最大数  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题解       题 ...

  9. ofbiz进击 第五节。 --OFBiz配置之[general.properties] 共有属性的分析(含email)

    文件内容如下 unique.instanceId=ofbiz1     #--为JobManger方法提供实例的ID(必须小于20个字符)    currency.uom.id.default=USD ...

  10. 查看真机的系统版本sdk

    1.adb devices 确保连接上了真机 2.adb shell 进入android系统 3.进入system目录下 4.查看build.prop文件 cat build.prop