【发布时间】:2016-03-31 14:25:46
【问题描述】:
我需要一种方法来遍历 MDI 父表单中的菜单项。
原因是因为我在按钮激活时设置了按钮的背景,以向用户显示他们选择了哪些按钮 .
下图显示了在菜单中选择System Settings 和右侧显示child form 的示例。
目前我使用直接代码来实现这一点:
systemManagementToolStripMenuItem.BackColor = Color.Gray;
如何循环,以便每次单击菜单项时都会更改所选项目的背景颜色。
【问题讨论】:
-
为什么不将
ToolStripMenuItem放在List中并循环遍历列表? -
为什么是这个 MDI?为什么选择在左侧时有一个窗口菜单?神秘的问题...只要完全放弃菜单,您就没有需要解决的问题。
-
@HansPassant 您将如何创建菜单驱动的应用程序?我对整个环境非常陌生,拥有 MS Access 背景,因此以我有限的知识,这似乎是最好的方法
-
@cocojay 我可能错误地怀疑你认为 MDI 代表菜单驱动;它代表多个文档。您的应用程序的“主要表单”可以是
MDIParent(有一个ClientArea用于“保存”表单),也可以不是普通的Form。 // 仅从图像中,我假设您可能希望使主窗体不是 MDI 容器,而只是在基于Panel中显示各种UserControl(其中每个UserControl代表菜单项对应的“页面”)选择了哪个ToolStripMenuItem? -
@cocojay 一切都好。但我认为您的意思是右侧的
Panel?基本上在上图中创建一个UserControl并将控件放在它的右侧(过滤器代码、名称、描述等)。当用户选择左侧的选项时,例如“文件”,然后在右侧的Panel内显示UserControl和DockStyle.Fill。每次用户选择和选项时,都会显示与该选项对应的UserControl。对用户来说,他们似乎只是在“切换页面”。如果你想变得更花哨,在你的UserControl上放一个TabControl并嵌套页面。