C# WinForm
中
MenuStrip
动态菜单使用总结
在 中使用菜单控件,我想 是很多人的首选,如何使用我就不多说
了,我就讲讲个人的使用心得。
以前在使用该控件的时候只知道在窗体设计器中手动输入菜单项目,这样做是比较方便,
但却不灵活。
某次要做的一个项目,涉及到权限分配,不同权限的人需要用到不同的菜单,这就需要在
窗体载入的时候动态创建 及其菜单项目。
后来上网搜索了很多相关创建动态菜单的代码,但却都不理想,最后只能自己取各家所长,
自己动手修改完成了这个东西。
我的思路是这样的:
1、首先要在数据库里创建一个菜单表 TB_MENU字段主要有
唯一标识值
菜单项目的父 如果是顶级菜单则为
该菜单项在窗体中的控件名称
该菜单项显示名称
该菜单项目要招待的事件名称带括号,例如:!"#$%$&'(
这些字段是必需的,其他的就要根据你的实际情况而定了。
2、在窗体中拖放一个 MenuStrip 控件,名称为 MainMenu1
3、在窗体代码的 FORM_LOAD 中加入以下语句:CreateMenu();
当然如果情况特殊,也可以在别的地方加入该句代码,视实际情况自己决定。
4、在相关窗体代码中加入以下构造函数
)))!%$*+"'(
))))))),
))))))))))
)))))))))))--取所有菜单项的语句,如果有权限限制等情况自行修改
)))))))))))./%01#%$23415
)))))))))))--取得菜单项数据集
)))))))))))""+#0!%"##6.""'/%(5
)))))))))))--检查判断 "" 数据是否完整
)))))))))))3'7$&""'+#((
))))))))))),
)))))))))))))))--加载 菜单
)))))))))))))))%08%'(5
))))))))))))))) "+!'311(5
)))))))))))9
)))))))))
)))))))9
)))))))---:#";<
)))))))---递归创建 菜单'模块列表(
)))))))---:-#";<
)))))))---:"""011<父菜单项:-""<