(精华)2020年02月13日 WinForm进销存管理系统项目实战(MenuStrip菜单控件的使用)
【摘要】
1.先设置MenuStrip的Name
2.获取数据源遍历添加到菜单上
/// <summary>
///递归添加菜单项
/// </summary>
/// <pa...
1.先设置MenuStrip的Name
2.获取数据源遍历添加到菜单上
/// <summary>
///递归添加菜单项
/// </summary>
/// <param name="mList"></param>
/// <param name="pMenu"></param>
/// <param name="pId"></param>
private void AddMenuItem(List<MenuInfoModel> mList, ToolStripMenuItem pMenu, int pId)
{
//获取所有子菜单列表
var childList = mList.Where(m => m.ParentId == pId);
foreach (var child in childList)
{
if(child.MDesp==MenuDesp.OpenSys.ToString()&&hasOpened)
{
continue;
}
if(child.MDesp==MenuDesp.UnOpenSys.ToString()&&!hasOpened)
{
continue;
}
ToolStripMenuItem mi = new ToolStripMenuItem();
mi.Name = child.MId.ToString();
mi.Text = child.MName;
if (!string.IsNullOrEmpty(child.MKey))
{
//alt+K
string sKey = child.MKey.ToString().Trim();
//设置Alt快捷键 Ctrl+P Shift+C
if (sKey.Length > 1 && sKey.Split('+')[0].ToLower() == "alt"&& child.ParentId==0)
{
mi.Text += $"(&{sKey.Split('+')[1]})";
}
mi.ShortcutKeys = SetShortKeys(sKey);
}
//菜单项关联页面
if (!string.IsNullOrEmpty(child.MUrl))
{
mi.Tag = child;
}
//菜单项响应事件注册(先没有子菜单的)有关联和没有关联页面
if (mList.Where(m => m.ParentId == child.MId).ToList().Count == 0)
{
mi.Click += Mi_Click;
}
if (pMenu != null)
pMenu.DropDownItems.Add(mi);
else
PSIMenus.Items.Add(mi);
AddMenuItem(mList, mi, child.MId);//为当前菜单项添加它的子菜单
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
文章来源: codeboy.blog.csdn.net,作者:愚公搬代码,版权归原作者所有,如需转载,请联系作者。
原文链接:codeboy.blog.csdn.net/article/details/113802336
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)