程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c# winform 子窗體訪問父窗體中的方法和變量

c# winform 子窗體訪問父窗體中的方法和變量

編輯:C#入門知識

今天的工作中突然用到這個了,不過以前沒有接觸過呢!不過,在有經驗的同事的幫助下,這個問題也很快解決了。具體可以分為以下幾種方式:

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved