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

  • 相关阅读:
    JVM之---Java源码编译机制
    高性能网站建设指南---前端工程师技能精髓
    Mybatis之reflection包源代码解析(一)
    Mybatis源代码分析之parsing包
    查看已安装tensorflow版本以及安装路径
    Opencv3.0: undefined reference to cv::imread(cv::String const&, int)
    海思3519A上移植OpenCV3.x
    Windows下Anaconda安装 python + tensorflow GPU版
    Windows下Anaconda安装 python + tensorflow CPU版
    查看 tensorflow 是GPU版本 还是CPU版本
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3184753.html
Copyright © 2011-2022 走看看