在WinForms中循环访问MDI父窗体中的菜单项

时间:2016-03-31 14:25:46

标签: c# .net winforms

我需要一种方法来遍历 MDI父表单中的菜单项。

之所以如此,是因为我在激活时设置按钮的背景,以向用户显示他们有哪些已选择

下面的图片说明了在菜单中选择System Settings并在右侧显示child form的示例。

目前,我使用直接代码实现了这一目标:

systemManagementToolStripMenuItem.BackColor = Color.Gray;

enter image description here

如何循环播放,以便每次单击菜单项时,它都会更改所选项目的背景颜色。

1 个答案:

答案 0 :(得分:1)

只需将ToolStipMenuItems收集到List中,并在用户执行操作以启动循环时循环遍历列表。

// First create the list of menu items
int selectedMenuItem = 0;
List<ToolStripMenuItem> menuItems = new List<ToolStripMenuItem>();
menuItems.Add(systemManagementToolStripMenuItem);

// When the user performs some action, such as pressing down arrow
selectedMenuItem = (selectedMenuItem + 1) % menuItems.Count;
UpdateSelectedItems();

// Have some method to update the buttons
public void UpdateSelectedItems()
{
    foreach(var item in menuItems)
        item.BackColor = Color.DarkGray;
    menuItems[selectedMenuItem].BackColor = Color.Gray;
}