CSFrameworkV6旗舰版 | 迭代开发 | 当前导航菜单、模块按钮与活动窗体同步|C/S开发框架
作者:csframework|C/S框架网  发布日期:2024/10/20 11:56:27

CSFrameworkV6旗舰版 | 迭代开发 | 当前导航菜单、模块按钮与活动窗体同步|C/S开发框架

CSFrameworkV6旗舰版 - 迭代开发 - 当前导航菜单、模块按钮与活动窗体同步

前言

  • 点击导航菜单或模块按钮自动激活当前窗体
  • 切换窗体标签自动定位菜单

要求

  • 窗体必须MdiChild子窗体(继承 frmBaseChild 基类)
  • 模块菜单必须绑定权限实例

CSFrameworkV6旗舰版 | 迭代开发 | 当前导航菜单、模块按钮与活动窗体同步|C/S开发框架

自动激活窗体菜单

CSFrameworkV6旗舰版 | 迭代开发 | 当前导航菜单、模块按钮与活动窗体同步|C/S开发框架

解决方案

步骤1:frmMain主窗体xtraTabbedMdiManager1组件实现SelectedPageChanged事件

CSFrameworkV6旗舰版 | 迭代开发 | 当前导航菜单、模块按钮与活动窗体同步|C/S开发框架

C# 全选
        private void xtraTabbedMdiManager1_SelectedPageChanged(object sender, EventArgs e)
        {
            var form = xtraTabbedMdiManager1.SelectedPage.MdiChild;//获取当前窗体实例
            var menuName = (form as IPurviewControllable)?.FormMenuName;//获取打开窗体的菜单名
            _ModuleManager.CurrentNavigator.FocusMenu(menuName);//调用策略接口
        }

步骤2:替换NavigatorLoader.cs

文件位置:CSFrameworkV6.Library\CommonClass\NavigatorLoader.cs

实现思路:

  • NavigatorBase类添加FocusMenu虚拟方法
  • NavigatorBarList、NavigatorTreeView两个派生的策略类重写(override)FocusMenu方法定位菜单项。

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇