新增菜单窗体没有显示也不能导入菜单解决方案 - MenuItemTag详解
新增菜单窗体没有显示也不能导入菜单解决方案 - MenuItemTag详解
新增菜单窗体没有显示也不能导入菜单解决方案, 包括: 1. 分配菜单权限 2. MenuItemTag详解 3. MenuType详解 解决方案: 1. 打开当前模块主窗体frmModuleMain.cs文件,检查SetMenuTage方法, 必须指定菜单的权限值(窗体最大可用权限): C# Code: /// <summary> /// 定义菜单与窗体的功能权限。 /// </summary> private void SetMenuTag() { //新增的菜单功能,必须指定权限值 menuDynamicReport.Tag = new MenuItemTag(MenuType.DataForm, (int)CSFrameworkV5.Interfaces.ModuleID.ReportModule, AuthorityCategory.REPORT_ACTION_VALUE); } //来源:C/S框架网 | www.csframework.com | QQ:23404761 AuthorityCategory.REPORT_ACTION_VALUE=96 2. 给新菜单对象.Tag指定权限后,重新编译,就可以导入菜单了。 菜单管理界面 用于查看软件项目内所有菜单的权限值,如下图所示: MenuItemTag详解 MenuItemTag类用于设置菜单的最大可用权限,也可理解为给窗体界面指定最大可用权限。 C# Code: /// <summary> /// 设置菜单的权限。 /// 给菜单对象的Tag属性分配此对象类型的实例,menuXXX.Tag=new MenuItemTag(); /// </summary> public class MenuItemTag { private MenuType _type; private int _moduleID; private int _FormAuthorities; /// <summary> /// 构造器 /// </summary> /// <param name="type">菜单类型</param> /// <param name="moduleID">模块编号</param> /// <param name="formAuthorities">窗体的可用权限</param> public MenuItemTag(MenuType type, int moduleID, int formAuthorities) { _type = type; _moduleID = moduleID; _FormAuthorities = formAuthorities; _ActionNames = new Hashtable(); } private Hashtable _ActionNames = null; /// <summary> /// 当前菜单功能按钮的自定义名称(支持多个自定义名称), 扩展按钮使用 /// </summary> public Hashtable ActionNames { get { return _ActionNames; } } /// <summary> /// 设置功能菜单的功能按钮权限名称, 扩展按钮使用 /// </summary> /// <param name="action">功能按钮编号</param> /// <param name="actionName">自定义名称</param> public void SetActionName(int action, string actionName) { if (_ActionNames.ContainsKey(action)) _ActionNames[action] = actionName; else _ActionNames.Add(action, actionName); } /// <summary> /// 菜单类型 /// </summary> public MenuType MenuType { get { return _type; } } /// <summary> /// 模块编号 /// </summary> public int ModuleID { get { return _moduleID; } } /// <summary> /// 窗体的可用权限 /// </summary> public int FormAuthorities { get { return _FormAuthorities; } } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 使用方法: 给菜单对象的Tag属性分配此对象类型的实例 C# Code: //新增的菜单功能,必须指定权限值 menuDynamicReport.Tag = new MenuItemTag(MenuType.DataForm, (int)CSFrameworkV5.Interfaces.ModuleID.ReportModule, AuthorityCategory.REPORT_ACTION_VALUE); //来源:C/S框架网 | www.csframework.com | QQ:23404761 MenuType详解:开发框架支持的菜单类型。 C# Code: /// <summary> /// 菜单类型 /// </summary> public enum MenuType { /// <summary> /// 未知类型(未使用) /// </summary> Unknow = 0, /// <summary> /// 模块主菜单(模块的一级菜单) /// </summary> Module = 1, // /// <summary> /// 数据窗体菜单 /// </summary> DataForm = 2, /// <summary> /// 父级菜单(下面有子菜单) /// </summary> ItemOwner = 3, /// <summary> /// 报表菜单 /// </summary> Report = 4, /// <summary> /// 独立功能(用于扩展) /// </summary> Action = 5, /// <summary> /// 对话框 /// </summary> Dialog = 6 } //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加作者微信
参考文档:
表格内显示多表关联数据解决方案(Join,View,Lookup) C#.NET C/S结构版本自动升级解决方案2.0详解 (一) 新增模块没有加载 | 左侧的导航菜单栏没显示 C# Winform的CheckListBox控件灰掉勾选项目解决方案 关于FastReport.Net升级版本编译失败解决方案 关于打开视频文件报错解决方案 DevExpress表格某个列不显示数据解决方案(图) 解决方案:扩展按钮自定义权限没有出现在权限树给用户勾选 数据字典基础资料窗体主键设置为自动生成流水号码解决方案 VS运行调试:当前无法命中断点,还没有为该文档加载任何符号|解决方案 生成的窗体Form源码集成到VS解决方案 - C/S框架三层架构代码生成器操作指南 VS.NET 窗体继承 - 按钮组件隐藏或位置不正确解决方案 WCF开发环境客户端调试服务端跟踪代码不能命中断点解决方案 WCF采用Message安全模式运行出错:安全包中没有可用的凭证解决方案 新增功能:保存前本地缓存数据,资料暂存解决方案 - Winform开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |