首页 > 其他分享 >窗口传值方法

窗口传值方法

时间:2024-10-10 16:21:47浏览次数:1  
标签:f1 f2 窗口 public 传值 FormSub 方法 Method FormFather

网络上有几种方法,先总结如下:
调用窗体(父):FormFather,被调用窗体(子):FormSub


方法1: 所有权法
       //FormFather:
       //需要有一个公共的刷新方法
       public void Refresh_Method()
       {
               //...
       }
       //在调用FormSub时,要把FormSub的所有者设为FormFather
       FormSub f2 = new FormSub() ;
       f2.Owner = this;
       f2.ShowDialog() ;


       //FormSub:
       //在需要对其调用者(父)刷新时
       FormFather f1 ;
       f1 = (FormFather)this.Owner;
       f1.Refresh_Method() ;

 

方法2:自身传递法
       //FormFather:
       //需要有一个公共的刷新方法
       public void Refresh_Method()
       {
               //...
       }
       FormSub f2 = new FormSub() ;
       f2.ShowDialog(this) ;


       //FormSub:
       private FormFather p_f1;
       public FormSub(FormFather f1)
       {
               InitializeComponent();
               p_f1 = f1;
       }
       //刷新时
       p_f1.Refresh_Method() ;

 

方法3:属性法
       //FormFather:
       //需要有一个公共的刷新方法
       public void Refresh_Method()
       {
               //...
       }
       //调用时
       FormSub f2 = new FormSub() ;
       f2.P_F1 = this; //重点,赋值到子窗体对应属性
       f2.Show() ;

       //FormSub:
       private FormFather p_f1;
       public FormFather P_F1
       {
               get{return p_f1;}
               set{p_f1 = value;}
       }
       //刷新时
       p_f1.Refresh_Method() ;


方法4:委托法
       //FormFather:
       //需要有一个公共的刷新方法
       public void Refresh_Method()
       {
               //...
       }
       //调用时
       FormSub f2 = new FormSub() ;
       f2.ShowUpdate += new DisplayUpdate(Refresh_Method) ;
       f2.Show() ;


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

       if(ShowUpdate!=null)   ShowUpdate();

 

       //子窗体提交后
       private void btnOK_Click(object sender, EventArgs e)
       {
               this.DialogResult = DialogResult.OK;
               this.Close();
       }


 
      //判断子窗体
       if(form.ShowDialog() == DialogResult.OK)
       {
                刷新父窗体中的DataGRIDVIEW数据
       }

  

标签:f1,f2,窗口,public,传值,FormSub,方法,Method,FormFather
From: https://www.cnblogs.com/jjyy2008cn/p/18456619

相关文章

  • Set 新增的实用方法
    有哪些新的Set方法呢?总共有7个新的方法,分别是:intersection() 计算两个Set的 交集union() 计算两个Set的 并集difference() 计算两个Set的 差集symmetricDifference() 取两个Set的 差集 的 并集isSubsetOf() 判断Set是否是另一个Set的 超集isD......
  • 常用的校验方法-正则表达式(推荐)
    转载:https://blog.csdn.net/JaveWong/article/details/1202102101、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})......
  • 解释 Vue 3 中的 `errorCaptured` 钩子的用途和使用方法。
    Vue3中的errorCaptured钩子的用途和使用方法在Vue3中,errorCaptured是一个生命周期钩子,它允许你捕获并处理组件内部或子组件中发生的错误。这个钩子可以在组件的任何级别上使用,并且对于全局错误处理非常有用。errorCaptured的用途全局错误处理:你可以在Vue应用......
  • JavaScript Number研究03_实例方法_toExponential_toFixed_toPrecision_toString_valu
    JavaScriptNumber研究03:实例方法——toExponential、toFixed、toPrecision、toString、valueOf、toLocaleString在JavaScript中,Number对象不仅包含了许多有用的静态属性,还提供了一系列实例方法,帮助我们在不同场景下处理和转换数值。这些方法包括:toExponential()toFixed()......
  • 「OC」NSArray的底层逻辑和遍历方法
    「OC」NSArray的底层逻辑和遍历方法文章目录「OC」NSArray的底层逻辑和遍历方法前言NSArray的底层逻辑占位符init后的空NSArray只有单个元素的NSArray大于一个元素的NSArray可变数组NSMutableArray总结图片遍历NSArray1.for循环2.枚举3.for—in4.多线程1.for循环&f......
  • 深入浅出:API接口的使用方法
    在数字化时代,API接口扮演着越来越重要的角色,它使得不同软件间的数据交换和功能整合变得轻而易举。无论是提升工作效率,还是开发新的应用程序,了解如何使用API接口都是一项宝贵的技能。本文将为您详细介绍API接口的使用方法,无论您是初学者还是有经验的开发者,都能从中获益。一、......
  • 超前校正方法
    一.超前矫正的传递函数为:H(s)=......
  • WindowsTerminal安装,Windows powershell和powershell区别,powershell升级方法
    1.WindowsTerminal安装从微软应用商店搜索获取即可2.Windowspowershell和powershell区别WindowsPowerShell和PowerShell是两个独立的产品,主要区别在于其运行平台和构建基础‌。以下是具体对比:‌运行平台‌:WindowsPowerShell:仅在Windows上运行,随Windows系统附带。Power......
  • 递归下降--自顶向下的解析方法
    递归下降(RecursiveDescentParsing)是一种自顶向下的解析方法,用于解析编程语言的语法或表达式。它通过使用一组递归的函数来处理文法规则(通常是上下文无关文法),从而将输入字符串解析为语法树或抽象语法树(AST)。递归下降解析器是手工编写的,因此可以根据具体需要灵活地控制解析行为......
  • 2024-10-10 js 深拷贝常用方法
    1、json序列化以及反序列化leta=JSON.parse(JSON.stringify(b))2、使用lodash库插件没有的话先安装:npmilodash使用方式:import{cloneDeep}from'lodash';leta=cloneDeep(b);ps:我当前使用的版本是@4为什么要使用深拷贝?因为我们在开发中会经常进行赋值......