V4.0-设置多语言,主窗体的菜单顺序乱了
V4.0-设置多语言,主窗体的菜单顺序乱了
解决:替换ModuleManager.cs文件中CreateToolButtons()方法。
C# Code:
/// <summary>
/// 跟据菜单创建Bar按钮
/// </summary>
/// <param name="menuBar">Bar容器</param>
/// <param name="mainMenu">主菜单(各模块主菜单的组合)</param>
public void CreateToolButtons(Bar menuBar, ToolStrip moduleMainMenu)
{
BarItemLink current = null; int index = 0;
foreach (ToolStripMenuItem moduleTopMenu in moduleMainMenu.Items)
{
if (!moduleTopMenu.Enabled) continue;//顶级菜单荐是禁用状态表示无权限,不创建
//模块主菜单名称(一级菜单)
BarSubItem menuOwner = new BarSubItem(menuBar.Manager, moduleTopMenu.Text);
menuOwner.PaintStyle = BarItemPaintStyle.CaptionGlyph;
menuOwner.Glyph = moduleTopMenu.Image;
menuOwner.Tag = moduleTopMenu;//设置标记
menuOwner.ItemClick = new ItemClickEventHandler(menuOwner_ItemClick);
if (current == null)//第一个BarItem
{
current = menuBar.ItemLinks.Insert(index, menuOwner);
current.BeginGroup = true;//第一个菜单项设置分组(小竖线)
index ;
}
else
{
current = menuBar.ItemLinks.Insert(index, menuOwner);
index ;
}
//递归加载
foreach (ToolStripItem item in moduleTopMenu.DropDownItems)
{
if (item is ToolStripSeparator) continue;//分隔符菜单项,不加载
if (!item.Enabled) continue;//菜单是禁止使用状态,无权限,不加载
if (item is ToolStripMenuItem && (item as ToolStripMenuItem).DropDownItems.Count > 0)
{//创建子级
BarSubItem itemOwner = new BarSubItem(menuBar.Manager, item.Text);
menuOwner.ItemLinks.Add(itemOwner);
this.LoadBarSubItems(itemOwner, item as ToolStripMenuItem);
}
else
{
this.LoadBarButtonItem(menuOwner, item);
}
}
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
/// <summary>
/// 跟据菜单创建Bar按钮
/// </summary>
/// <param name="menuBar">Bar容器</param>
/// <param name="mainMenu">主菜单(各模块主菜单的组合)</param>
public void CreateToolButtons(Bar menuBar, ToolStrip moduleMainMenu)
{
BarItemLink current = null; int index = 0;
foreach (ToolStripMenuItem moduleTopMenu in moduleMainMenu.Items)
{
if (!moduleTopMenu.Enabled) continue;//顶级菜单荐是禁用状态表示无权限,不创建
//模块主菜单名称(一级菜单)
BarSubItem menuOwner = new BarSubItem(menuBar.Manager, moduleTopMenu.Text);
menuOwner.PaintStyle = BarItemPaintStyle.CaptionGlyph;
menuOwner.Glyph = moduleTopMenu.Image;
menuOwner.Tag = moduleTopMenu;//设置标记
menuOwner.ItemClick = new ItemClickEventHandler(menuOwner_ItemClick);
if (current == null)//第一个BarItem
{
current = menuBar.ItemLinks.Insert(index, menuOwner);
current.BeginGroup = true;//第一个菜单项设置分组(小竖线)
index ;
}
else
{
current = menuBar.ItemLinks.Insert(index, menuOwner);
index ;
}
//递归加载
foreach (ToolStripItem item in moduleTopMenu.DropDownItems)
{
if (item is ToolStripSeparator) continue;//分隔符菜单项,不加载
if (!item.Enabled) continue;//菜单是禁止使用状态,无权限,不加载
if (item is ToolStripMenuItem && (item as ToolStripMenuItem).DropDownItems.Count > 0)
{//创建子级
BarSubItem itemOwner = new BarSubItem(menuBar.Manager, item.Text);
menuOwner.ItemLinks.Add(itemOwner);
this.LoadBarSubItems(itemOwner, item as ToolStripMenuItem);
}
else
{
this.LoadBarButtonItem(menuOwner, item);
}
}
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898

参考文档:
CSFrameworkV6:Toolbar功能按钮的子按钮设置多语言|C/S开发框架
软件开发框架培训实时讲解总结|CSFrameworkV5.1旗舰版|培训大纲
软件开发框架培训内容大全 | CSFrameworkV5.1旗舰版|培训大纲
主窗体模块列表没有翻译多语言 - 重写SetLanguage方法自定义显示多语言
主窗体的导航菜单及树结构菜单实现多语言(翻译英文越南文)
CSFrameworkV6:Toolbar功能按钮的子按钮设置多语言|C/S开发框架
软件开发框架培训实时讲解总结|CSFrameworkV5.1旗舰版|培训大纲
软件开发框架培训内容大全 | CSFrameworkV5.1旗舰版|培训大纲
主窗体模块列表没有翻译多语言 - 重写SetLanguage方法自定义显示多语言
主窗体的导航菜单及树结构菜单实现多语言(翻译英文越南文)
其它资料:
什么是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内容管理系统 |
什么是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内容管理系统 |
在线客服
