zoukankan      html  css  js  c++  java
  • Winform 子窗体设置刷新父窗体

    方法1:所有权法

    父窗体:Form1    子窗体:Form2

    //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() ;

    方法二:自身传递法

    //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() ;
    方法三:属性法
    //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() ;
    方法四:委托法
    //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();
    
    //子窗体提交后
    private void btnOK_Click(object sender, EventArgs e)
    {
                 this.DialogResult = DialogResult.OK;
                 this.Close();
    }
    
    
    //判断子窗体
    if(form.ShowDialog() == DialogResult.OK)
    {
         刷新父窗体中的DataGRIDVIEW数据
    }

    我本人用的是第一种方法,比较好操作一些

  • 相关阅读:
    Linq&Lumbda
    PS颜色模式
    WPF绑定方式
    明三杰刘健
    齐有鲍叔,郑有子皮
    朱厚照
    管子&小白
    时间
    人外有人之神箭手养繇基篇
    楚共王
  • 原文地址:https://www.cnblogs.com/pingming/p/4207736.html
Copyright © 2011-2022 走看看