Following is the example of how we can achive this task recursively. This recursive program is small but very useful.
void FindMenuItems(MenuItem mi, List<MenuItem> list)
{
foreach (MenuItem child in mi.ChildItems)
{
MessageBox.Show(child.Text);
list.Add(child);
}
foreach (MenuItem child in mi.ChildItems)
{
FindMenuItems(child, list);
}
}
Find the all parents in menu items:
void FindParents(MenuItem mi, List<MenuItem> list)
{
if(mi.Parent != null)
{
if(mi.Parent != mainMenu.Items[0])
{
list.Add(mi.Parent);
FindParents(mi.Parent, list);
}
}
}