今天的工作中突然用到这个了,不过以前没有接触过呢!不过,在有经验的同事的帮助下,这个问题也很快解决了。具体可以分为以下几种方式:

1、在父窗体中构造子窗体对象时,将父窗体传递过去:

如:FrmSub frm=new FrmSub(this);//this代表父窗体

2、将父窗体中要访问的变量和方法修改为public

3、在子窗体类中定义一个父窗体的全局变量:

如:private dynamic m_parentContainer;//使用dynamic可以动态的识别该变量的类型

4、添加引用Microsoft.CSharp.dll

5、在要访问地方直接通过m_parentContainer.变量名或m_parentContainer.方法名访问即可

if (m_ParentContainer.mFrm2BaseLibDataEdite == null || m_ParentContainer.mFrm2BaseLibDataEdite.IsDisposed)//mFrm2BaseLibDataEdite为父窗体变量
                {

                    m_ParentContainer.mFrm2BaseLibDataEdite = new frm2BaseLibDataEdite();

                    if (m_ParentContainer.mFrm2BaseLibDataEdite.IsDisposed == false)

                    {

                        m_ParentContainer.fnAddChildFormToMDIForm(m_ParentContainer.mFrm2BaseLibDataEdite);//fnAddChildFormToMDIForm()为父窗体方法

                        m_ParentContainer.mFrm2BaseLibDataEdite.Show();

                    }

                }

                else {

                    m_ParentContainer.mFrm2BaseLibDataEdite.WindowState = FormWindowState.Maximized;

                    m_ParentContainer.mFrm2BaseLibDataEdite.Activate();

                    m_ParentContainer.mFrm2BaseLibDataEdite.Show();

                }

c# winform 子窗体访问父窗体中的方法和变量的更多相关文章

  1. 子窗口访问父页面iframe中的iframe,top打开的子窗口访问父页面中的iframe中的iframe

    子窗口访问父页面iframe中的iframe 子窗口访问最顶层页面中的iframe中的iframe top打开的子窗口访问父页面中的iframe中的iframe top打开的子窗口访问最顶层页面中的i ...

  2. 【Vue项目笔记】—— 父子组件之间传递参数和子组件执行父组件中的方法

    父组件(MyBlog.vue) <template> <!-- Delete Modal --> <!-- 注意:这里的@deleteBlog中的deleteBlog要和 ...

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

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

  4. winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法

    最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操 ...

  5. Winform子窗体刷新父窗体

    调用窗体(父):Form1,被调用窗体(子):Form2方法1:   所有权法//Form1://需要有一个公共的刷新方法public   void   Refresh_Method(){//...} ...

  6. Winfrom子窗体刷新父窗体

    本人比较懒,直接从网上转载了一篇比较合适的文章,只是文章格式有点乱,地址是 http://aspnet.blog.163.com/blog/static/17515510920121126104433 ...

  7. js子窗体、父窗体方法互调

    var childWindow = $("#editFrame")[0].contentWindow;//获取子窗体的window对象. childWindow.subForm() ...

  8. C#Winform窗体利用单例子窗体传值父窗体

    简述:最近在做C#和HALCON编程,要用到单例的参数由子窗体改变父窗体的值.此例为简化版 1,点击系统设置 2,弹出子窗体,在其输入修改参数后点修改按钮 3,点击确定按钮后,关闭子窗体后,主窗体te ...

  9. MFC获得主窗体和父窗体指针

    MFC编程中经常遇到子窗体向父窗体传递參数的情况,这就须要获得父窗体的指针. 例:主对话框CMyMainDlg通过buttonButtonA进入对话框CMyParentDlg.CMyParentDlg ...

随机推荐

  1. 找到程序真正的入口(使用IDE追踪)

    一.程序的真正入口 main或WinMain只是“语法规定的程序入口” 并不是“应用程序入口”. 我们使用VC++ 6.0 的栈回溯功能,找到main函数之前的代码.菜单View -> Debu ...

  2. ajax表单提交全路径

    //ajax提交form表单的方式 $(document).ready(function() { $('#shopping-submit').click(function() { alert(&quo ...

  3. (原创)优酷androidclient 下载中 bug 解决

    在网络情况不好的情况下,优酷androidclient下载视频会终止,用户放弃下载点击 删除该任务以后,切换到网络好的情况下进行下载,会显示该视频已在下载队列里,然后clientUI界面却什么都看不到 ...

  4. python 默认编码( UnicodeDecodeError: 'ascii' codec can't decode)

    python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't deco ...

  5. treeview树形菜单,递归

    我使用的是递归是实现无限级树形菜单: using System; using System.Collections; using System.Configuration; using System. ...

  6. UIPageControl的一个Demo

    本篇文章只是记录了一个自定义UIPageControl 的制作,其实很简单的   源码在底部会奉上链接,还望多多交流,多多支持. 首先效果图如下: 首先先做一个UISCrollView // 建议这样 ...

  7. JAVA之成员变量初始化

    java中成员变量的初始化,如果是普通成员变量可以赋初值,如果没赋初值,则系统会自动赋初值.而对于局部变量必须手动赋初值. package MyText2; public class MyText1 ...

  8. eval 捕获错误

    eval 捕获错误: [root@dr-mysql01 ~]# cat t1.pl use DBI; my $dbUser='zabbix'; my $user="root"; m ...

  9. HTML5开发桌面应用:选择node-webkit还是有道heX

    近几年,移动应用和web2.0大行其道,相比之下.传统桌面应用程序开发显得相对冷清(包含该领域技术人才的后继力量),但在一些场景下,它依旧有其不可替代的优势. 将HTML5和Node.JS的技术优势. ...

  10. ExtJs4 笔记(12) Ext.toolbar.Toolbar 工具栏、Ext.toolbar.Paging 分页栏、Ext.ux.statusbar.StatusBar 状态栏

    本篇讲解三个工具栏控件.其中Ext.toolbar.Toolbar可以用来放置一些工具类操控按钮和菜单,Ext.toolbar.Paging专门用来控制数据集的分页展示,Ext.ux.statusba ...