2011-04-01 71 views
2

我使用的MenuStrip與兩個主ToolStripMenuItems,其中每個人都有其「下拉」更多ToolStripMenuItems的CheckOnClick屬性設置爲true。如何獲取ToolStripMenuItem?

現在我試圖檢索所選擇的項目,我知道bool ToolStripMenuItem.Checked存在,但我怎麼能使用循環得到各主要ToolStripMenuItemToolStripMenuItems,然後檢查是哪一個.Cheked是==真的嗎?

或者有沒有更好的方法來檢索ToolStripMenuItem

+0

簡單地重複用foreach Items屬性。完全不清楚你爲什麼遇到問題。 – 2011-04-01 14:58:34

+0

我不知道要循環什麼,ToolStripMenuItem.DropDownItems就是我正在尋找的東西。 – nitrkli 2011-04-01 15:29:28

回答

2

假設你正在使用LINQ,這裏是你可以做什麼:

private void button1_Click(object sender, EventArgs e) 
    { 
     foreach (var item in this.menuStrip1.Items.Cast<ToolStripMenuItem>()) 
     { 
      GetCheckMenuItemText(item); 
     } 
    } 

    private void GetCheckMenuItemText(ToolStripMenuItem item) 
    { 
     if (item.HasDropDownItems) 
     { 
      foreach (var subItem in item.DropDownItems.Cast<ToolStripMenuItem>()) 
      { 
       GetCheckMenuItemText(subItem); 
      } 
     } 
     else 
     { 
      if (item.CheckOnClick) 
       Debug.WriteLine(item.Text); 
     } 
    }