• C# 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();  

    方法5:消息法

    //Form1

    //需要有一个公共的刷新方法    
    public   void    Refresh_Method()    
    {    
    //...    
    }

    //判断对话框结果

    if (Form1.ShowDialog(this) ==DialogResult.OK)
    {
    Refresh_Method()  
    }
    //From2
    //刷新时
     this.DialogResult = System.Windows.Forms.DialogResult.OK;

  • 相关阅读:
    vue 路由嵌套 (子路由跳转报错或者失效解决方法)
    vue-cli3主题色系统
    vue项目哀悼日
    el-upload 文件上传显示进度
    课表
    uni-app 开发钉钉小程序
    Linux/Centos/Ubuntu crontab备份数据库
    【转】鲁迅为厦大题写校名,为啥4个字错了3个?专家:鲁迅故意写错的。
    计数单位资料汇总(个十百千兆京...,分厘毫丝忽微纤沙尘埃...)
    【转】如意算盘:中国的第五大发明
  • 原文地址:https://www.cnblogs.com/laowengdiaodayu/p/4171980.html
Copyright © 2020-2023  润新知