簡體   English   中英

在WinForms中訪問ToolStripMenuItem子級

[英]Access the ToolStripMenuItem child in WinForms

全部

我不是在Winform中動態創建菜單欄。 當用戶擁有權限時,所有內容都是不可見的。 我的一個用戶名擁有全部權利, 為此,我編寫了以下代碼,..

private void menuActive(MenuStrip menus)
{
     foreach (ToolStripMenuItem menu in menus.Items)
     {
          menu.Visible = true;               
          for (int i = 0; i < menu.DropDown.Items.Count; i++)
          {
               menu.DropDown.Items[i].Visible = true;                        
          }
     }
}

但這是可見的menuItem和子menuItem。 我的幾個childItem菜單中有更多childItem。 這意味着,在TsmMaster和tsmregisterMaster中可見,但是我無法訪問registerMasters Childs(ClassMaster,Division Master...。)

參見下圖。

在此處輸入圖片說明

請提出您的建議。

遞歸嘗試:

private void ActivateMenus(ToolStripItemCollection items)
{
    foreach (ToolStripMenuItem item in items)
    {
        item.Visible = true;    
        ActivateMenus(item.DropDown.Items);
    }
}

固定版本的代碼

       private void menuActive(MenuStrip menus)
       {
            foreach (ToolStripMenuItem menu in menus.Items)
            {
                activateItems(menu);
            }
        }

        private void activateItems(ToolStripMenuItem item)
        {
            item.Visible = true;
            for (int i = 0; i < item.DropDown.Items.Count; i++)
            {
                ToolStripItem subItem = item.DropDown.Items[i];
                subItem.Visible = true;
                if (item is ToolStripMenuItem)
                {
                    activateItems(subItem as ToolStripMenuItem);
                }

            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM