zoukankan      html  css  js  c++  java
  • winform刷新父窗体

      

    网络上有几种方法,先总结如下:
    调用窗体(父):Form1,被调用窗体(子):Form2
    方法1:   所有权法
    //Form1:
    //需要有一个公共的刷新方法
    public   void   Refresh_Method()
    {
    //...
    }
    //在调用Form2时,要把Form2的所有者设为Form1
    Form2   f2   =   new   Form2()   ;
    f2.Owner   =   this;
    f2.ShowDialog()   ;
    //Form2:
    //在需要对其调用者(父)刷新时
    Form1   f1   ;
    f1   =   (Form1)this.Owner;
    f1.Refresh_Method()   ;
    方法2:自身传递法
    //Form1:
    //需要有一个公共的刷新方法
    public   void   Refresh_Method()
    {
    //...
    }
    Form2   f2   =   new   Form2()   ;
    f2.ShowDialog(this)   ;
    //Form2:
    private   Form1   p_f1;
    public   Form2(Form1   f1)
    {
    InitializeComponent();
    p_f1   =   f1;
    }
    //刷新时
    p_f1.Refresh_Method()   ;
    方法3:属性法
    //Form1:
    //需要有一个公共的刷新方法
    public   void   Refresh_Method()
    {
    //...
    }
    //调用时
    Form2   f2   =   new   Form2()   ;
    f2.P_F1   =   this;
    f2.Show()   ;

    //Form2:
    private   Form1   p_f1;
    public   Form1   P_F1
    {
    get{return   p_f1;}
    set{p_f1   =   value;}
    }
    //刷新时
    p_f1.Refresh_Method()   ;
    方法4:委托法
    //Form1:
    //需要有一个公共的刷新方法
    public   void   Refresh_Method()
    {
    //...
    }
    //调用时
    Form2   f2   =   new   Form2()   ;
    f2.ShowUpdate   +=   new   DisplayUpdate(Refresh_Method)   ;
    f2.Show()   ;
    //Form2:

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

  • 相关阅读:
    maven dependencies 里面的包怎么导出
    webUploader react 接口设计
    HTML5 History API实现无刷新跳转
    Object.defineproperty实现数据和视图的联动
    jsLoader、cssLoader、imageLoader
    【转】前端工程化-公共模块的依赖和常用的工作流
    JDBC详解
    正则表达式
    【GOF23设计模式】备忘录模式
    【GOF23设计模式】观察者模式
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/1820811.html
Copyright © 2011-2022 走看看