zoukankan      html  css  js  c++  java
  • [转]winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体

    (转载请删除括号里的内容)

    winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下:

    一 、 所有权法

    父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始化方法。如:

     
    1
    2
    3
    4
    public void reLoad_method()
    {
        //窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
    }

    fuForm中打开ziForm时需要设置所有者,就是ziForm的所有者是fuForm,代码如下:

     
    1
    2
    3
    ziForm _ziForm  = new ziForm ();
    _ziForm.Owner = this;
    _ziForm.ShowDialog();

    ziForm关闭或者需要刷新fuForm时,代码如下:

     
    1
    2
    3
    fuForm _fuForm ;
    _fuForm = (fuForm )this.Owner;
    _fuForm.reLoad_method();

      

    二、自身传递法

    在父窗体中有个公共刷新方法,如:

     
    1
    2
    3
    4
    public void reLoad_method()
    {
        //窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
    }  

    父窗体打开子窗体方法代码:

     
    1
    2
    ziForm _ziForm = new ziForm()   ;
    _ziForm.ShowDialog(this)   ;

    子窗体中:

     
    1
    2
    3
    4
    5
    6
    7
    8
    private   fuForm _fuForm;
    public   ziForm(fuForm   fromfuForm)
    {
    InitializeComponent();
    _fuForm   =   fromfuForm;
    }
    //刷新时
    _fuForm.reLoad_method();

      

    三、属性法

    在父窗体中有个公共刷新方法,如:

     
    1
    2
    3
    4
    public void reLoad_method()
    {
        //窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
    }  

    父窗体打开子窗体方法代码

     
    1
    2
    3
    ziForm _ziForm =   new   ziForm()   ;
    _ziForm.fuFormX   =   this;
    _ziForm.Show()   ;

    子窗体中:

     
    1
    2
    3
    4
    5
    6
    7
    8
    private fuForm fuFormXy;
    public fuForm fuFormX
    {
    get{return   fuFormXy;}
    set{fuFormXy  =   value;}
    }
    //刷新时
    fuFormXy.reLoad_method() ;

    四、委托法

    在父窗体中有个公共刷新方法,如:

     
    1
    2
    3
    4
    public void reLoad_method()
    {
        //窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新
    }  

    父窗体打开子窗体方法代码

     
    1
    2
    ziForm _ziForm = new ziForm();
    _ziForm.ShowUpdate += new DisplayUpdate(reLoad_method);<br>_ziForm.Show();

    子窗体中:

     
    1
    2
    3
    4
    5
    6
    //声明一个委托
    public delegate void DisplayUpdate();
    //声明事件
    public event DisplayUpdate ShowUpdate;
    //刷新时,放在需要执行刷新的事件里
    ShowUpdate();

    在以上几个方法中,个人认为第一个所有权法最好用,容易理解,而且代码简洁,推荐使用第一种方法。


    ---------------------
    作者:weekzero
    来源:CNBLOGS
    原文:https://www.cnblogs.com/weekzero/p/3471317.html

  • 相关阅读:
    chrome浏览器解析xml
    CuteEditor报错 空引用错误
    猫哥网络编程系列:HTTP PEM 万能调试法
    猫哥网络编程系列:详解 BAT 面试题
    全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)
    全新 Mac 安装指南(通用篇)(推荐设置、软件安装、推荐软件)
    魅族手机浏览器兼容性调优最佳实践
    使用 nvm 管理不同版本的 node 与 npm
    一种让 IE6/7/8 支持 media query 响应式设计的方法
    排列组合算法的javascript实现
  • 原文地址:https://www.cnblogs.com/kevinl/p/13767162.html
Copyright © 2011-2022 走看看