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();
                }
發佈了66 篇原創文章 · 獲贊 5 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章