2013-08-31 70 views
0

有mdi父窗體包含菜單條,最初在用戶成功從子登錄窗體登錄後禁用菜單條..成功登錄後,我需要啓用mdi父項菜單條如何從mdi子窗體獲取mdi父控件

到目前爲止我嘗試過的是這樣的東西,但它不工作。

if (username == validUsername && password == validPassword) 
    { 
      this.mdicontainer.menustrip.enabled = false; 
    } 

什麼方式來訪問從子窗體的MdiParent控制..

+1

使用'MdiParent'屬性。 –

+0

我不明白你可以請解釋 –

+0

你可以通過它的屬性'MdiParent'訪問Mdi父母,如:'childForm.MdiParent' –

回答

2

改變從子窗體主要形式的性是一種不好的方式爲我的。如何創建一個登錄對話框表單並僅用於請求登錄名和密碼? 默認的登錄表單的場景很簡單:

  1. 你主要形式(MainFrm),並創建登錄表單(LoginDlg)的登錄文本框,密碼文本框和「確定」和「取消」按鈕
  2. 在創建LoginDlg的新實例,並調用它的開始(例如,在MainFrm_Shown)的「ShowDialog的()」方法
  3. 如果用戶點擊「確定」後,您會收到MainFrm從LoginDlg
  4. 你分析的登錄和登錄名和密碼密碼莫名其妙在MainFrm
  5. 如果登錄和密碼是正確的,你讓你的MenuStrip或任何
  6. 否則顯示錯誤信息,並顯示DialogFrm再次

下面是創建登錄表單一些有用的鏈接:

-1

假設你有一個MDI窗體調用MDIMaster一個名爲自己的自定義屬性MenuStripEnabled和菜單條控件調用MainMenuStripControl

 // Property variable 
     private bool _MenuStripEnabled = true; 

     // Custom property 
     public bool MenuStripEnabled 
     { 
      get { 
       return _MenuStripEnabled; 
      } 
      set { 
       _MenuStripEnabled = value; 
       this.MainMenuStripControl.Enabled = value; 
      } 
     } 

然後將其從子窗體調用,你只是做這樣的:

 (this.MdiParent as MDIMaster).MenuStripEnabled = false; 

「爲MDIMaster」部分重新分配的一般的MdiParent爲您的特定形式的類型,讓您ACC給你的自定義屬性。

;-)