zoukankan      html  css  js  c++  java
  • c# winform 子窗体访问父窗体中的方法和变量

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

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

  • 相关阅读:
    Redis集群启动脚本
    查看表结构
    MySQL删除冗余数据
    Java中的阶乘
    MySQL中IFNULL,ISNULL和NULLIF
    最小化安装CentOS7后要做的30件事情
    VMware的CentOS部署环境
    CentOS 上的 FirewallD 简明指南
    CentOS安装Java环境
    Linux中一些常用的很巧妙的命令
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3184753.html
Copyright © 2011-2022 走看看