Click here to Skip to main content
Click here to Skip to main content

Iterating through menustrip Items

, 4 May 2012 CPOL
Rate this:
Please Sign up or sign in to vote.
This tip explains how you can iterate through all ToolStripMenuItems of a menu strip.


It is quite difficult to set the properties of toolstrip menu items like if you want to disable certain items or make them invisible. It is simple to set them individually, but if you want to iterate through all the items, it's quite difficult. This tip explains how you can iterate through all ToolStripMenuItems of a menu strip.


The given code works on a recursive method call.

Using the Code

private void SetToolStripItems(ToolStripItemCollection dropDownItems)
                foreach (object obj in dropDownItems)
                //for each object.
                    ToolStripMenuItem subMenu = obj as ToolStripMenuItem;
                    //Try cast to ToolStripMenuItem as it could be toolstrip separator as well.

                    if (subMenu != null)
                    //if we get the desired object type.
                        if (subMenu.HasDropDownItems) // if subMenu has children
                            SetToolStripItems(subMenu.DropDownItems); // Call recursive Method.
                        else // Do the desired operations here.
                            if (subMenu.Tag != null)
                                subMenu.Visible = UserRights.Where(x => 
                                x.FormID == Convert.ToInt32(subMenu.Tag)).First().CanAccess;
            catch (Exception ex)
                MessageBox.Show(ex.Message, "SetToolStripItems",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);

Points of Interest

Recursive methods are quite useful when you don't know the depth of the loops.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Qadeer Ahmed Khan
Software Developer
Pakistan Pakistan
No Biography provided

Comments and Discussions

Questiontip PinmemberMrDeej3-May-12 9:27 
AnswerRe: tip Pinmemberqadeer ahmed khan3-May-12 20:22 
GeneralRe: tip PinmemberSelvin4-May-12 0:41 
GeneralRe: tip PinmemberJohn Brett4-May-12 1:11 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150327.1 | Last Updated 4 May 2012
Article Copyright 2012 by Qadeer Ahmed Khan
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid