DevExpress01:Bar Manager,bar 、Toolbars
Bar Manager : 不可见的控件
如果想在窗体或用户控件添加工具条或弹出菜单,我们需要把一个不可见的控件 BarManager拖放到这个窗体或用户控件上。
这个BarManager控件维护工具条在窗体上的布局,处理用户的行为,提供一些定制功能等等。
这个BarManager控件维护:
- 工具条(bars)、
- 工具条项(bar items)、
- 工具条项目录(bar item categories) 这三者的集合
所以我们可以使用BarManager的一些方法去添加、删除、访问这些工具条元素。
注意:1)一个窗体上只能放置一个BarManager控件。
2)由于BarManager控件与RibbonControl控件可能会彼此冲突,
所以不推荐在同一个窗体或用户控件上同时使用工具条和Ribbon控件。
当把BarManager添加到一个窗体或用户控件上后,我们就可以使用上下文菜单、BarManager的定制窗口或它的设计器来创建工具条和工具条命令了。
bar 工具条
工具条是一个可视的控件,它用来显示各个项目链接。
我们可以在工具条内显示由XtraBars库提供的任意项目链接,比如:按钮(buttons),静态文本(static text),子菜单(submenu)、编辑器(editors)等等。
Bar Items
为了把多种元素(比如按钮,子菜单,标签,编辑器等)添加到工具条和菜单,我们需要创建合适的bar items。
一个bar item是一个实现了特定功能的非可见对象。
它定义了一个相应的元素如何显示在屏幕上,并决定了对鼠标单击事件的相应。
我们可以右击底部的BarManager,选择弹出Customize窗体,然后切换到Commands页来创建bar items。
为了在逻辑上组织这些item,我们经常将它们分类。
该窗体的左侧面板里显示了有效的分类目录,右侧面板显示了属于当前选中分类目录的各个bar item。
选中一个bar item可以在属性窗口看到其属性。
Categories
XtraBars允许我们将bar items在逻辑上划分为不同的类别(categories)。
每个类别都是一组item,并且每个item都只属于一个类别(category)。
类别不会对该类的item附加任何约束,分类只是为了对item进行有组织的访问。
用BarManagerCategory类表示一个类别。
我们通过BarManager.Categories集合来添加、移除、存取类别。
使用BarItem.Category属性,我们可以为每个item分配一个类别。
Bar Dock Controls 工具条停放控件
工具条停放控件(bar dock controls)是工具条(toolbar)的容器,它们位于窗体或用户控件内用以容纳工具条对象。
有regular和standalone两种工具条停放控件。
regular bar dock controls是由BarManager自动维护的,我们不用手动去创建它们。
它们停靠在容器(比如窗体)的任意一边,以显示工具条。
BarManager中的StandaloneBarDockControl属性用来在窗体内的任何位置显示工具条。
我们需要手动绑定StandaloneBarDockControl控件
Regular Bar Dock Controls
当工具条停靠于容器(比如form)的任意一边时,regular bar dock controls将工具条的停靠位置显示出来。
当创建 Bar Manager时,它会自动创建4个regular dock controls,并将它们停靠在窗体的相应边缘。
只有当一个工具条停放在一个dock control上时,这个dock control才是可见的。
其他情况下,dock control的宽度都是0。
当将工具条拖动到窗体的任意一边时,相应的dock controls会容纳并显示这个工具条。
Bar.CanDockStyle属性可以指定工具条的可能停放位置。
一般情况下,在应用程序中是没有必要去改变自动生成的regular dock controls的属性。
除非 我们想 要为停靠的工具条提供背景设置。
Bar Manager会自动创建名为barDockControl1...barDockControl4的4个 dock controls。
每个dock control都是一个BarDockControl类。
在设计时,我们通过在属性窗口选择相应的对象来访问 dock control。
此外,如果dock control是可见的,并且没有完全被工具条覆盖,
那么, 我们可以单击选中它,以在属性窗口中显示它。
Standalone Bar Dock Controls
Standalone bar dock controls允许工具条停靠在窗体或用户控件上的任意位置,而不仅仅是窗体的边缘。
创建一个StandaloneBarDockControl对象并且将工具条添加到其上就能做到这种效果。
像regular bar dock control一样,standalone bar dock controls可以在窗体或用户 控件中随意放置。
它们的Dock、Location和Size属性用来指定布局设置。
StandaloneBarDockControl.AutoSize属性用来启用自动调整大小模式。
在这种模式下,当向该控件添加或删除工具条时,该控 件的大小是自动变化的。
使用Standalone bar dock controls的前提是:
该窗体或用户控件上已添加了 BarManager控件。
如果我们以编码的方式创建了StandaloneBarDockControl对象,
那么我们就需要手动将其添加到 BarManager的BarManager.DockControls集合中。
Toolbars自定义
为了在窗体上创建bar和bar items,我们需要往窗体上添加一个BarManager控件。
creating bars and bar items on the form at design time
在设计时(at design time),当把BarManager添加到窗体上后,就会自动创建三个空工具条,
分别是:窗体顶部的主菜单栏、工具栏和窗体底部的状态栏。
主菜单栏 通常是一个位于窗体顶部的工具条,
其他的工具条不能和主菜单栏位于同一行。
终端用户也不能关闭主菜单栏。
默认情况下,用户可以拖拽主菜单栏,将其停靠至窗体的任意边缘。
主菜单栏 被赋予至BarManager.MainMenu属性。
状态栏 通常是一个位于窗体底 部的工具条。
用户不能拖动该工具条。
BarManager.StatusBar属性赋值为该状态栏。
在一个窗体上只有一个主菜单和一个状态栏。
默认情况下,工具条上有[Add]上下文链接(context links)。
通过该链接,我们可以将bar items添加到工具条上。
我们可以单击[Add]链接来激活bar item列表,然后从中选择需要的bar item。
选择一个item后,它即被添加到工具条上,同时文本编辑器也被激活。
在此文本编辑器里我们可以编辑新添加项的名字。
按Enter键来结束编辑和该项的添加。
如果我们要添加一个子菜单(submenu),那么先选择sub-menu以添加菜单项(Menu Item),
然后再次单击它,并通过[Add]添加新的bar item。
若想在设计时隐藏[Add]上下文链接,右击BarManager控件,
然后勾去“show design time enhancements"选项即可。
如果是勾选了这个选项,[Add]链接又会出现。
creating bars and bar items using the customization window
右击鼠标,使用BarManager的Customization窗口是向窗体添加 工具条 和 bar items的另一种方式。
1)Manipulate Bars
切换到Customization窗口的Toolbars页,单击new,即可添加工具条。
选择工具条列表中的一个,点击delete,即可删除该工具条。
只有在运行时,Rename和Reset按钮才处于激活状态。
2)Adding Bar Items
切换到Commands页,点击modify按钮,
然后选择Add菜单项,Add New BarItem对话框就会出现。
在该对话框里,我们可以指定该项的分类、名字、标题(caption)等。
当新的item创建后,我们就可以把它拖放到工具条上。
creating bars using the barmanager's designer
BarManager的设计器也是用来添加、删除、自定义设置工具条的一种方式。
切换到Toolbars页,单击Add New Toolbar和Delete Toolbar按钮即可创建或删除工具条。
customizing items and links at design time
在设计时,当你选择一个链接, 它就会在属性窗口中显示相应item的设置;
如果改变这个item的外观设置, 就会影响到该item的所有属性没有显性设置的链接。
为了避免对这些链接造成影响,我们可以这样做:
在设计时,右击这个链接,通过弹出的菜单来改变设置。
选项 描述
Reset 重置该链接的所有自定义设置。选中该选项后,这个链接的外观就会由相应item的外观设置控制。
也可在代码中,调用BarItemLink.Reset方法以将其恢复到默认值。
Delete 删除该链接。调用BarItemLink.Dispose方法也可达到该目的。
Change Caption 改变item 的标题。该值会应用于所有User caption没有设置的link。
这个选项对应于BarItemLink.Caption属性。
change user 为某一link赋自定义标题,这样就覆盖了默认的item的标题。
User caption只赋值于当前的link。该选项对应于BarItemLink.UserCaption。
Default style 为某link设置默认的样式。每个link的的默认样式都可以是不同的。
使用BarItemLink.PaintStyle属性来在代码里设置paint style.
Text only 项目链接(item link)被绘制为文本。
Text only item link 在菜单里被绘制为文本,在工具条里被绘制为图片。
Image and Text item link被绘制为图片和文本。
Begin a Group 在选中的link钱插入一分隔符,以将item links逻辑分组。
该选项对应于BarItemLink.BeginGroup属性。
Visible 决定一个item link是否可见。该选项对应于BarItemLink.Visible属性。
Most recently 决定一个item是否指向最经常使用的link。
勾选掉这个选项后,就会使该link位于最近使用项列表的底部。该选项对应用
used BarItemLink.MostRecentlyUsed属性。
How to obtain a value of the BarEditItem during editing
Object value=(barManager1.ActiveEditor as DevExpress.XtraEditors.ButtonEdit).EditValue;
DevExpress01:Bar Manager,bar 、Toolbars的更多相关文章
- Spark2.0 特征提取、转换、选择之一:数据规范化,String-Index、离散-连续特征相互转换
数据规范化(标准化) 在数据预处理时,这两个术语可以互换使用.(不考虑标准化在统计学中有特定的含义). 下面所有的规范化操作都是针对一个特征向量(dataFrame中的一个colum)来操作的. 首先 ...
- Webpack4教程:第一部分,入口、输入和ES6模块
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://wanago.io/2018/07/16/webpack-4-course-par ...
- msf客户端渗透(四):关闭UAC,hash、防火墙、服务、磁盘、DEP、防病毒、远程桌面、桌面截图、获取tooken
关闭UAC 如果你获得一个system权限的session 进入到这个session 进入到shell 依次输入以下命令 cmd.exe /k %windir%\System32\reg.exe AD ...
- MySQL高级学习笔记(三):Mysql逻辑架构介绍、mysql存储引擎
文章目录 Mysql逻辑架构介绍 总体概览 总体概览 mysql存储引擎 查看命令 看你的 mysql 现在已提供什么存储引擎 : 看你的 mysql 当前默认的存储引擎 : 各个引擎简介 MyISA ...
- [译]使用JMH进行微基准测试:不要猜,要测试!
英文原文:Micro Benchmarking with JMH: Measure, don't guess!翻译地址:使用JMH进行微基准测试:不要猜,要测试!原文作者:Antonio翻译作者:Ho ...
- hasChildNodes()方法,nodeName、nodeValue、nodeType介绍
Document对象的使用:hasChildNodes()方法,nodeName.nodeValue.nodeType的简单介绍 一.hasChildNodes() 说明: (1) 该方法 ...
- 数理统计7:矩法估计(MM)、极大似然估计(MLE),定时截尾实验
在上一篇文章的最后,我们指出,参数估计是不可能穷尽讨论的,要想对各种各样的参数作出估计,就需要一定的参数估计方法.今天我们将讨论常用的点估计方法:矩估计.极大似然估计,它们各有优劣,但都很重要.由于本 ...
- Echarts图表控件使用总结2(Line,Bar)—问题篇
Echarts图表控件使用总结1(Line,Bar):http://www.cnblogs.com/hanyinglong/p/Echarts.html 1.前言 a.前两天简单写了一篇在MVC中如何 ...
- Echarts图表控件使用总结1(Line,Bar)
问题篇(详解):http://www.cnblogs.com/hanyinglong/p/4708337.html 1.前言 a.在系统开发过程中可能会使用到图表控件,一个好的图标控件可以使我们的网站 ...
随机推荐
- Spring配置Quartz任务调度、及 ThreadPool 线程池
ONE.除了引入 Spring 相关的 jar 包,还要引入 Quartz 的 jar 包 <dependency> <groupId>org.springframework& ...
- MD5,SHA1 都是哈希 摘要算法 MD5+SALT BCRYPT
为什么说 MD5 是不可逆的? md5是摘要算法,你学数据结构的时候学过哈希表吧?也有叫散列的.md5就是干那个用的 当然,如果硬要说的话...你可以用md5 hash一段字符串,也算是加密好了,不过 ...
- 阿里云centos6.5实践编译安装LNMP架构web环境
LNMP 代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构. 本次测试需求: **实践centos6.5编译安装 LNMP生产环境 架构 web生产环境 使用 ngx_pa ...
- C# WPF打包部署时添加注册表信息实现开机启动
使用VS自带的打包模块可以很方便的对项目进行打包部署,同时我们也可以在安装部署时操作注册表实现开机启动软件.具体实现如下: 创建安装部署这部分就不用说了,添加安装部署项目后,鼠标右键安装项目-> ...
- C# 开发者审查代码的41条建议
1. 确保没有任何警告(warnings). 2.如果先执行Code Analysis(启用所有Microsoft Rules)再消除所有警告就更好了. 3. 去掉所有没有用到的usings.编码过程 ...
- MySQL 命令登录
本地登录 MySQL客户端:https://dev.mysql.com/downloads/installer/ 在本地安装好客户端,配置好环境变量,即可直接在命令提示符中登录 简单点: 需要根据提示 ...
- Ubuntu双系统环境下隐藏掉其他开机启动项
系统环境:ubuntu16.04需求:PC装的双系统(ubuntu+win10),为了应对某些需求,需要将win10系统给从电脑上消失,让你看不见也进不去它.做法:当然不可能真的删除掉win10系统, ...
- Navicat MySql乱码解决
接着上一篇博客继续解决 如上图,鼠标放在localhost上右键,选择编辑连接,弹出下图. 如下选择好之后,连接数据库,进行测试.在test数据库上右键选择命令列界面,如下图,输入show varia ...
- Myeclipse打war包方法
Myeclipse三种打包方法第一种方法打开Myeclipse如图操作. 如果该项目已存在需要移除之后在进行第三步,接着往下走. 项目打war包成功,推荐使用第一种方法. 第二种方法https://b ...
- html基础-a标签-img标签-绝对/相对路径(3)
美好的星期六,今天多写一点,争取早点写js这个有点小无聊. 一.先来讲点网页之间的跳转 (1).<a href=""></a> href="这里 ...