博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NavBarControl 左侧菜单
阅读量:5052 次
发布时间:2019-06-12

本文共 2675 字,大约阅读时间需要 8 分钟。

(1)示例图片

具体实现:

一、

using DevExpress.XtraNavBar;

二、

从窗体上拖一个 NavBarControl 控件 命名为:nbcLeft

三、窗体OnLoad 事件

private void FrmLeftMenu_Load(object sender, EventArgs e)        {            DataTable dt=stu.GetMain().Tables[0];                        CreateGroup(dt, "MainName", "ChildName",nbcLeft);                  }

NavBarControl 调用方法:

///         /// NavBarControl 数据填充        ///         /// 含有主菜单(子菜单)的表        /// 主菜单名称        /// 子菜单名称        /// NavBarControl 控件名称        private void CreateGroup(DataTable dt,string mainColumnsName,string childColumnsName,NavBarControl nbc) {            //创建之前,清空navbargroup            nbcLeft.Groups.Clear();            //过滤重复记录            DataTable dt1 = dt.DefaultView.ToTable(true, mainColumnsName);            if (dt1.Rows.Count < 1) {                return;            }            DataRow[] drs = dt1.Select();            int i = 0;//            foreach (DataRow dr in drs) {                i++;                //添加 navbargoup                DevExpress.XtraNavBar.NavBarGroup nbg = new NavBarGroup();                nbg.Caption = dr[0].ToString();                nbg.GroupClientHeight = 60;                nbc.Groups.Add(nbg);                                //添加子项                //根据主菜单项名称 获取所属的所有子项                string abc=mainColumnsName +"='"+ nbg.Caption+"'";                DataRow[] drsChild = dt.Select(abc);                                if (drsChild.Length < 1) {                    continue;                }                CreateGroupChild(drsChild,nbg,childColumnsName);                //加载时,第一个是展开的                if (i == 1) {                    nbg.Expanded = true;                }            }                }        ///         /// 添加子项        ///         /// 子菜单表        /// NavBarGroup 主菜单项        private void CreateGroupChild(DataRow[] drs, DevExpress.XtraNavBar.NavBarGroup nbg,string childColumnsName) {                    foreach (DataRow dr in drs) {                //给子项赋值                DevExpress.XtraNavBar.NavBarItem nbi = new NavBarItem();                nbi.Caption = dr[childColumnsName].ToString();                                      //nbi.Appearance.BackColor = Color.Yellow;                子菜单图片                //nbi.SmallImage=new Bitmap(@"C:\Users\Thinkpad\Pictures\美图\psu.jpg");                nbg.ItemLinks.Add(nbi);                nbi.LinkClicked += new DevExpress.XtraNavBar.NavBarLinkEventHandler(Nbi_LinkClicked);            }        }        //单击事件        private void Nbi_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) {               //点击子项,执行.....                }

说明:数据表举例:

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

转载于:https://www.cnblogs.com/Jackerson/p/4631964.html

你可能感兴趣的文章
Android--AsyncTask异步加载详解
查看>>
YARN学习总结
查看>>
C#基础温习(2):温习控制台程序(二)
查看>>
一些文章
查看>>
注解@ResponseBody的作用
查看>>
java main函数不执行?
查看>>
iOS 更好用的打Log方式-显示文件名、行数
查看>>
从MS SQL删除大数据说开去
查看>>
NOVO SOP (SOP简介及历史)
查看>>
windows7+docker添加php扩展
查看>>
V2019 Super DSP3 Odometer Correction Vehicle List
查看>>
Python 3.X 练习集100题 05
查看>>
今时不同往日:VS2010十大绝技让VS6叹服
查看>>
设计器 和后台代码的转换 快捷键
查看>>
在线视频播放软件
查看>>
用代码生成器生成的DAL数据访问操作类 基本满足需求了
查看>>
28初识线程
查看>>
Monkey测试结果分析
查看>>
Sublime Text 3 设置
查看>>
poodle attack
查看>>