NavBarControl控件:主要作用是制作包含多个选项组并且每个组里包含多个子选项的导航栏;

位于 工具箱 -> Navigation & Layout(导航栏与布局类控件) 目录下;

在工具箱输入名称NavBarControl检索,然后直接拖拽到面板上便可使用,最好是放在一个子容器里(比如PanelControl);

NavBarControl控件常用属性描述:(选中NavBarControl控件实例,打开属性窗口)

蓝色为常用属性     红色为未知属性、几乎不会用到或很少用到的属性、其他托管属性、暂时不需要我们去处理的属性

BarManager  
        MenuManager (BarManager)菜单管理
布局  
        Anchor (enum)控件锚点
通用属性,设置Top、Bottom、Right、Left四个位置以使
控件在指定方位跟随父容器变换而变换
        Dock (enum)控件在父容器中停靠方式
通用属性,五个可选值设置使控件停靠在父容器的上下左
右四个方位或充满整个父容器
        Location(X,Y) (int)控件的位置
通用属性,上方Dock属性为None时生效
        Size(W,H) (int)控件的长宽
通用属性,上方Dock属性为None时生效
行为  
        AllowDrop (bool)是否接收用户拖到控件上的数据
        Enabled (bool)控件是否激活
        LinkSelectionMode (enum)指定当前选中的项目是否保持选中
        TabIndex (int)tab键切换焦点的索引
        TabStop (bool)是否禁用tab键切换焦点
Visible (bool)控件是否可见
数据  
Groups (NavGroupCollection)当前导航栏的所有分组
Items (NavItemCollection)当前导航栏的所有选项
外观  
ActiveGroup                                                          
(NavBarGroup)当前展开的分组,PaintStyle不为
ExplorerBar(也就是同时只能有一个分组展开)时生效
Appearance (NavBarAppearances)整个控件的外观属性设置,应用
于控件中的所有部件
HotTrackedGroupCursor (enum)鼠标停在分组上的显示样式
HotTrackedItemCursor (enum)鼠标停在选项上的显示样式
LargeImages (ImageList)大图标集合,可供控件下的其他部件在其中
选择自己的大图标
LinkInterval (int)行间距
LookAndFeel 控件使用的皮肤
        NavigationPaneGroupClientHeight (int)导航面板组的高度,决定下方的分组栏目是否缩进
        NavigationPaneMaxVisibleGroups (int)导航面板最大可见分组
        NavigationPaneOverflowPaneUse
        SmallImages
(bool)导航窗格被缩进的分组是否使用小图标
    OptionsNavPane(导航窗格的选项设置)  
        AllowOptionsMenuItem (bool)菜单项是否允许选择
        AnimationFramesCount (int)导航栏缩进动画的帧数
        CollapsedNavpaneContentControl (Control)整个导航栏缩进时显示的控件
        CollapsedWidth (int)导航栏缩进时保持的宽度
        ExpandButtonMode (enum)导航栏缩进的方向,比如靠左还是靠右
ExpandedWidth (int)导航栏展开时的宽度
        GroupImageShowMode (enum)导航栏的分组在什么情况下才显示图标
        MaxPopupFormWidth (int)导航栏缩进时,点击选项弹出的窗口最大值
        NavPaneState (enum)当前导航栏的状态,是展开还是缩进
ShowExpandButton (bool)是否显示导航栏缩进按钮
        ShowGroupImageInHeader (bool)是否显示当前已展开分组的图标
        ShowHeaderText (bool)是否显示当前已展开分组的名称
ShowOverflowButton (bool)是否显示导航栏中分组的缩进按钮
ShowOverflowPanel (bool)是否显示导航栏中分组的缩进平面
        ShowSplitter (bool)是否显示分割线
   
PaintStyleKind (enum)导航栏的模式,比如同时只允许展开一个分组
或者可以多个分组一起展开
PaintStyleName (enum)导航栏的样式
RightToLeft (enum)导航栏是否是从右到左对齐
SkinExplorerBarViewScrollStyle (enum)PaintStyleKind为ExplorerBar模式时,内容超出
时的进度条显示模式
SmallImages (ImageList)控件的小图标集合,对应当前项目中的任一
图片集
Text (string)控件的显示内容
UseWaitCursor (bool)鼠标经过此控件时是否切换为等待状态光标
   

一、新建一个导航栏

拖入一个panel到窗口上做为导航栏的容器,然后再拖入一个NavBarControl到其上,点击NavBarControl控件的右上角三角箭头展开任务列表,选择PaintStyle模式为Navigationpane,也就是同时最大展开的分组数目为1。

二、手动为导航栏添加数据

点击控件右上角三角箭头展开任务列表,选择Run Designer打开设计界面。

设计界面的Main -> Groups/Items/Links为导航栏的分组及子项目编辑界面,我们进入此界面,在右侧的NavBar Groups窗口内点击鼠标焦点至此窗口时,上方的添加按钮可以添加新的分组,在右侧的NavBar Items窗口内点击鼠标焦点至此窗口时,上方的添加按钮可以添加新的子项目,选中每个分组或子项目可以在右侧的属性窗口快捷设置他的常用属性,添加好了多个分组和子项目时,需要将子项目指定到某一分组内,直接用鼠标拖动NavBar Items中的子项目到NavBar Groups中的该分组下。

我们创建好了多个分组和子项目后,直接点击运行,查看此时的效果。

三、捕获导航栏的基本事件

捕获导航栏子项目的鼠标点击事件LinkClicked:

public Form1()
        {
            InitializeComponent();

            OtherInit();
        }
        /// <summary>
        /// 其他的初始化处理
        /// </summary>
        private void OtherInit()
        {
            navBarItem1.LinkClicked += Item_Click;
            navBarItem2.LinkClicked += Item_Click;
            navBarItem3.LinkClicked += Item_Click;
            navBarItem4.LinkClicked += Item_Click;
            navBarItem5.LinkClicked += Item_Click;
            navBarItem6.LinkClicked += Item_Click;
            navBarItem7.LinkClicked += Item_Click;
            navBarItem8.LinkClicked += Item_Click;
            navBarItem9.LinkClicked += Item_Click;
        }
        /// <summary>
        /// 导航栏子项目的点击事件
        /// </summary>
        private void Item_Click(object sender, NavBarLinkEventArgs e)
        {
            MessageBox.Show("点击了子项目:" + e.Link.Caption);
        }

四、动态更改导航栏数据

只需要根据数据动态的创建分组和子项目,并将子项目添加到分组之下:

NavBarGroup nbGroup1 = new NavBarGroup();
            nbGroup1.Name = "nbGroup1";
            nbGroup1.Caption = "动态添加的分组";
            nbGroup1.SmallImageIndex = -1;
            nbGroup1.LargeImageIndex = -1;
            //添加到导航栏所有分组集合
            navBarControl1.Groups.Add(nbGroup1);

            NavBarItem nbItem1 = new NavBarItem();
            nbItem1.Name = "nbItem1";
            nbItem1.Caption = "动态添加的子项目";
            nbItem1.SmallImageIndex = -1;
            nbItem1.LargeImageIndex = -1;
            nbItem1.LinkClicked += Item_Click;
            //添加到导航栏所有子项目集合
            navBarControl1.Items.Add(nbItem1);

            //添加子项目至某一分组
            nbGroup1.ItemLinks.AddRange(new NavBarItemLink[] {
                new NavBarItemLink(nbItem1)
            });

Winform DevExpress控件库(三) 使用NavBarControl控件定制导航栏的更多相关文章

  1. sencha touch 自定义cardpanel控件 模仿改进NavigationView 灵活添加按钮组,导航栏,自由隐藏返回按钮(废弃 仅参考)

    最新版本我将会放在:http://www.cnblogs.com/mlzs/p/3382229.html这里的示例里面,这里不会再做更新 代码: /* *模仿且改进NavigationView *返回 ...

  2. [Xcode 实际操作]三、视图控制器-(6)UINavigationController导航栏样式

    目录:[Swift]Xcode实际操作 本文将演示对导航栏进行样式设置,以及更改导航顶部的提示区. 选择编辑第一个视图控制器文件. import UIKit class FirstSubViewCon ...

  3. 《Dotnet9》系列-开源C# Winform控件库1《HZHControls》强力推荐

    大家好,我是Dotnet9小编,一个从事dotnet开发8年+的程序员.我最近在写dotnet分享文章,希望能让更多人看到dotnet的发展,了解更多dotnet技术,帮助dotnet程序员应用dot ...

  4. DevExpress控件库 开发使用经验总结1 DevExpress简介、安装、使用

    2015-01-24 最近公司开发的WinForm客户端图书行业ERP管理系统,界面端采用了DevExpress控件库.界面效果非常绚丽,类似于Office2007.2010的界面风格. 其中的控件功 ...

  5. [深入浅出Windows 10]QuickCharts图表控件库解析

    13.4 QuickCharts图表控件库解析     QuickCharts图表控件是Amcharts公司提供的一个开源的图表控件库,这个控件库支持WPF.Silverlight.和Windows等 ...

  6. WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件

    在 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 一文中,我们说到了在 WPF 中引入简单的 UWP 控件以及相关的注意事项 ...

  7. DevExpress控件库 开发使用经验总结2 DevExpress汉化之WinForm开发模式汉化

    2015-01-24 DevExpress控件库默认安装后,使用的本地资源为英文.Developer Express .NET产品都有本地化资源,比如按钮属性,控件属性描述,菜单项,确认和错误的信息等 ...

  8. Winform DevExpress控件库(一) DevExpress控件库的安装与新建第一个DevExpress项目

    前言:因为这段时间要接触到DevExpress控件库,而我本身甚至对winform的控件都了解甚少,所以处在学习中,写下博客主要是为了方便后期的回顾,当然也可以给一些新人第一次接触时做为学习的参考,以 ...

  9. Winform DevExpress控件库(二) 使用SplashScreenManager控件定制程序加载页面

    SplashScreenManager控件:主要作用是显示在进行耗时操作时的等待界面: 位于 工具箱 -> Navigation & Layout(导航栏与布局类控件) 目录下: 在工具 ...

随机推荐

  1. dynamic 的使用 待续

    Dynamic 使用场景之一 : 替代反射 class Me { public string Blog { get; set; } public string GetName() { return&q ...

  2. 【转】 js怎么区分出点击的是鼠标左键还是右键?

    IE 下 onMouseDown 事件有个 events.button 可以返回一个数值,根据数值判断取得用户按了那个鼠标键 events.button==0  默认.没有按任何按钮. events. ...

  3. thymeleaf中的模板布局

    一.包括模板片段: 1:定义和引用片段,我们经常会想要包含在模板片段来自其他模板.常见的用途是页脚.标题.菜单…; 为了做到这一点,Thymeleaf需要我们定义包含可用的片段,我们可以通过使用th: ...

  4. How to make apq8084

    1.first of all ,you will meet many problem no excute permisson,pls do : chmod -R +x APQ8084/ 2. buil ...

  5. 从SG函数浅谈解决博弈问题的通法

    基于笔者之前对于几种二元零和博弈游戏的介绍,这里将其思想进行简单的提炼,并引出解决这类二元零和博弈游戏的强大工具——SG函数. 其实对于博弈游戏如Bash.Nim等基本类型,异或一些比较高级的棋类游戏 ...

  6. Centos 6.4下使用VSFTPD无法正常连接与无法上传文件的问题解决

    发表于 2014 年 4 月 13 日 作者 SCKA 最近利用Linux搭建服务器 搭建FTP的时候决定使用VSFTP搭建,结果却出现了无法正常连接与无法上传文件等诸多问题 经过许久的努力,终于让V ...

  7. POJ 1625 Censored! [AC自动机 高精度]

    Censored! Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 9793   Accepted: 2686 Descrip ...

  8. Server response error code:404, error:{&quot;ret&quot;:-1, &quot;msg&quot;:&quot;invalid appkey&quot;}

    Server response error code:404, error:{"ret":-1, "msg":"invalid appkey" ...

  9. Node.js学习起步

    Node.js学习: 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱 ...

  10. MonkeyRunner测试工具小结

    一.MonkeyRunner介绍: MonkeyRunner是Google提供的一个基于坐标点的Android黑盒自动化测试工具.Monkeyrunner工具提供了一套API让用户/测试人员来调用,调 ...