网络上有几种方法,先总结如下:
调用窗体(父):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数据
       }

【转】C# 子窗体如何调用父窗体的方法的更多相关文章

  1. vue:子组件通过调用父组件的方法的方式传参

    在本案例中,由于子组件通过调用父组件的方法的方式传参,从而实现修改父组件data中的对象,所以需要啊使用$forceUpdate()进行强制刷新 父组件: provide() { return { s ...

  2. uni-app 子组件如何调用父组件的方法

    1.在父组件methods中定义一个方法: changeType:function(type){ this.typeActive = type; alert(type); } 2.在父组件引用子组件时 ...

  3. winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体

    winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始 ...

  4. window.opener调用父窗体方法的用法

    应用实例:        function BindWindowCloss() {            $(window).bind('beforeunload', function () {    ...

  5. vue 子组件调用父组件的方法

    vue中 父子组件的通信: 子组件通过 props: { //子组件中写的. childMsg: { //字段名 type: Array,//类型 default: [0,0,0] //这样可以指定默 ...

  6. Vue子组件调用父组件的方法

    Vue子组件调用父组件的方法   Vue中子组件调用父组件的方法,这里有三种方法提供参考 第一种方法是直接在子组件中通过this.$parent.event来调用父组件的方法 父组件 <temp ...

  7. react 中子组件调用父组件的方法

    1.在父组件中定义方法,并绑定在子组件上 // 在子组件中调用父组件中的方法 import React,{Component} from 'react'; import Child from './c ...

  8. mui---子页面主动调用父页面的方法

    我们在做APP的时候,很多时候会有这样的功能需求,例如:登录,充值,如果登录成功,或充值成功后,需要更改当前页面以及父页面的状态信息,就会用到在子页面调用父页面的方法来实现:在子页面刷新父页面的功能. ...

  9. Vue中子组件调用父组件的方法

    Vue中子组件调用父组件的方法 相关Html: <!DOCTYPE html> <html lang="en"> <head> <meta ...

随机推荐

  1. 【转】SQL注入(通过sqlmap来改变所有事情)

    第一步: sqlmap基于Python2.72版本,所以首先下载: https://www.python.org/  记住不要下载python3 第二步: 安装Python,将sqlmap解压到Pyt ...

  2. Android开发-API指南-<uses-sdk>

    <uses-sdk> 英文原文:http://developer.android.com/guide/topics/manifest/uses-sdk-element.html 采集(更新 ...

  3. 慕课网-安卓工程师初养成-3-9 Java中运算符的优先级

    来源 http://www.imooc.com/code/1315 所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最 ...

  4. Swift开发中的一些琐碎

    1.Swift中使用OC 1.创建 pch 文件,直接引用需要的头文件  #import"SQLite3.h" 2.修改 pct 路径 ,如下图,就可以使用了 2. Swift 没 ...

  5. [vsftp]500 OOPS: cannot change directory

    这个报错需要检查 1./etc/passwd 用户的主目录 2./etc/vsftpd/vuser_conf 下每个用户的local_root 3.每个用户目录给ftpuser加上rwx权限,一定要有 ...

  6. php 5.6.14手动安装 php -v 显示没有安装

    奇怪了,今天利用源码手动php,安装成功后,利用php -v提示没有安装,which php也是有问题,php文件也没有办法执行 搞了半天,发现是没有添加环境变量,╮(╯▽╰)╭ 方法: 修改/etc ...

  7. java学习之(接口)

    使用接口 接口不能用于创建实例,但接口可以用于声明引用类型变量.当使用接口来声明引用类型变量时,这个引用类型变量必须引用到其实现类的对象.除此之外,接口的主要用途就是被实现类实现.归纳起来,接口主要有 ...

  8. 使用Apache CXF开发WebServices服务端、客户端

    在前一篇的博客中,我使用Xfire1.x来开发了WebServies的服务端. 但是如果你访问Apache的官网,可以看到xfire已经被合并了. 最新的框架叫做CXF. Apache CXF = C ...

  9. tty -s && mesg n

  10. maven auto-config 多环境自动打包

    摘自:http://doc.okbase.net/bjhecwq/archive/118121.html maven有许多优秀的插件,最近在研究打包中替换多重环境的配置,同事介绍使用阿里的auto-c ...