2011-04-01 3 views
2

J'utilise un MenuStrip avec deux principaux ToolStripMenuItems, chacun d'entre eux a son "dropdown" avec plus ToolStripMenuItems qui ont la propriété CheckOnClick définie sur true.Comment faire pour vérifier ToolStripMenuItem?

Maintenant, je suis en train de récupérer l'élément sélectionné, je sais bool ToolStripMenuItem.Checked existe, mais comment puis-je utiliser une boucle pour obtenir le ToolStripMenuItems de chacun des principaux ToolStripMenuItem puis vérifier que l'on a .Cheked est == true?

Ou existe-t-il un meilleur moyen de récupérer le ToolStripMenuItem vérifié?

+0

parcourons simplement la propriété Items avec foreach. Pas du tout clair pourquoi vous avez un problème à faire cela. –

+0

Je ne savais pas quoi faire en boucle, ToolStripMenuItem.DropDownItems est ce que je cherchais. – nitrkli

Répondre

2

Supposons que vous utilisez LINQ, voici ce que vous pouvez faire:

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); 
     } 
    } 
Questions connexes