(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 调用方法:

 /// <summary>
/// NavBarControl 数据填充
/// </summary>
/// <param name="dt">含有主菜单(子菜单)的表</param>
/// <param name="mainColumnsName">主菜单名称</param>
/// <param name="childColumnsName">子菜单名称</param>
/// <param name="nbc">NavBarControl 控件名称</param>
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;
}
} } /// <summary>
/// 添加子项
/// </summary>
/// <param name="drs">子菜单表</param>
/// <param name="nbg">NavBarGroup 主菜单项</param>
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) {
//点击子项,执行..... }

说明:数据表举例:

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

NavBarControl 左侧菜单的更多相关文章

  1. python : jquery实现左侧菜单

    左侧菜单 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3 ...

  2. python :页面布局 ,后台管理页面之左侧菜单跟着滚动条动

    左侧菜单跟着滚动条动 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// ...

  3. python : HTML+CSS (左侧菜单)

    左侧菜单 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3 ...

  4. Flex 仿Winxp左侧菜单

    呆毛放出,源码暂时不能公布,一直比较喜欢winxp的左侧菜单样式,以前也用xslt实现过,但总是达不到完美,没想到FLex轻松做到了这一点,几乎和winxp一模一样.

  5. 使用layui-tree美化左侧菜单,点击生成tab选项

    layui-tree美化左侧菜单 html <div class="layui-side layui-bg-black"> <div class="la ...

  6. React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)

    最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...

  7. LayUI左侧菜单无法保持选中状态

    1.问题描述:一般的左侧菜单都会是动态添加的模块,利用循环把模块名和链接地址逐个显示出来如下图 但是问题来了,只要点任何二级菜单就不会保持左侧菜单当前一级菜单和二级菜单选中状态. 2.分析原因:因为模 ...

  8. dedecms后台左侧菜单500错误怎么处理

    前面dedecms后台左侧菜单空白不显示怎么处理,但有些网友还是反应说不能显示,提示500错误,这可能是iis配置或apache设置不正确有关,一般是正常的.但是,既然问题出现了,我们还是要去解决.下 ...

  9. jquery左侧菜单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. linux下 链接 sqlserver数据库 驱动的安装

    1.必需安装freetds 安装pdo_dblib扩展首先需要安装freetds. freeTDS的最新稳定版是0.91,这个可以在官网上下载http://www.freetds.org/ ,也可以在 ...

  2. c 的ui

    你这些问题是必须要搞清楚的. 1. 首先,UI的实现在不同的操作系统平台上是有所不同的.Windows的UI是内置于操作系统的,Linux/Unix的UI则是通过一个应用程序实现的.由此看来,变成语言 ...

  3. 错误 1 error C2065: “IDC_LISTBOX”: 未声明的标识符

    错误的可能原因及解决方法如下:1.出错文件中没有包含资源文件ID声明的resource.h文件.在出错文件中加入#include “resource.h”语句. 2.工程附件包含目录的路径下没有res ...

  4. 从IT的角度思考BIM(三):敏捷开发

    人们看到了远处BIM的美丽胜景和阻挡在眼前的宽广河流.有些人自信满满地跳入河中打算孤身游过彼岸,可是却失败了.有些人匆匆忙忙地造了船胡乱地滑向彼岸,可是也失败了. 要如何继续这段探索之旅? 无论是&l ...

  5. Xcode:只修改 Bundle Identifier,不修改项目名

    找到 xx-Info.plist,打开 直接去修改 Bundle identifier 即可(默认后缀是项目名字).

  6. XCode 项目配置说明

    初学XCode最让人头疼的就是项目各属性设置,各种不解,这里做个总结: 项目配置: 基本项(Basic) 1.Architectures(指令集)——设置你想支持的指令集,目前ios的指令集有以下几种 ...

  7. LightOj_1408 Batting Practice

    题目链接 题意: 击球训练中, 你击中一个球的概率为p,连续击中k1个球, 或者连续击空k2个球, 则训练结束. 求结束训练所击球次数的期望. 思路: 设f[x]为连续击中x个球, 距离结束训练所需要 ...

  8. 记录一次配置unix网络编程环境的过程和遇到的问题

    记录一次搭建unix网络编程环境过程中遇到的问题和总结 计算机环境虚拟机 linuxmint-18-xfce-64bit 1.打开unix网络编程.iso 把目录下的文件复制到某一目录,修改权限,可命 ...

  9. APP二维码微信扫描后无法下载的问题

    微信打开网址添加在浏览器中打开提示  2014-10-13  蔡宝坚  移动前端 使用微信打开网址时,无法在微信内打开常用下载软件,手机APP等.网上流传的各种微信打开下载链接,微信已更新基本失效,最 ...

  10. 15 个响应式的 jQuery 图像滑块插件

    设计师和开发人员总是试图使用新技术让网站更智能,而我们发现在许多网站上 jQuery 的图像滑块插件是非常受欢迎的.本文继续介绍 15 个 jQuery 图像滑块插件以供您选择. ELASTISLID ...