公司动态
DevExpress 菜单栏
DevExpress 控件一、实现弹出式菜单1.添加BarManager 和 PopupMenu2.添加Bar 命令(Command)2.1 通过使用BarManager 的Customize 添加2.2 在BarManager中添加2.3 在PopupMenu中添加Bar 命令3. 添加事件Event3.1 鼠标事件3.2 BarItems 添加事件4. Tips一、实现弹出式菜单经常需要通过鼠标右键打开菜单进行相应的操作。这里需要使用到barmanager控件和popupMenu控件。为什么需要引入这两个组件才可以实现。主要barmanager 组件其实对用户来说是不可视的就像名字一样其实是充当一个bar 管理者的身份工具栏菜单栏popupMenu状态面板等才是面向用户的。对这两个控件的描述VS 中显示如下控件描述barmanagerAllow you to create bars and forms. 这是一个Bar管理器允许你创建一系列的工具项popupMenuDisplays a shortcut menu that can be displayed at any position of screen. 可以在屏幕的任意位置上显示一个快捷菜单类比win10 上的鼠标右键可以设置鼠标当前位置GirdControl自带这个属性MousePosition1.添加BarManager 和 PopupMenu通过工具箱添加这两组件到相应的窗体上2.添加Bar 命令(Command)2.1 通过使用BarManager 的Customize 添加2.2 在BarManager中添加通过定制面板添加。点击 ‘modify 修改’项可以在里面进行添加Add删除Delete bar命令等操作在添加Bar 命令时会发现有很多种类型的BarItem这里简单介绍本次会用到的类型Type其他的类型我也没玩过可以自己尝试一下。类型Type描述DescriptionButton(BarButtonItem)很直白的名称其实就是一个类似于按钮Button 功能的一个BarItem。可以点击Click等事件都可以在属性栏或者事件栏中查看Menu(BarSubItem)这也是一个Menu菜单也就是一个子菜单里面可以包含其他的BarItems。添加这个类型就类似于windows系统下鼠标右键后“新建”子菜单下有很多选择项2.3 在PopupMenu中添加Bar 命令首先既然PopupMenu中的Bar 命令是来之BarManager中的那么需要先指定这个BarManeger通过PopupMenu.Manager 属性指定可以在代码中使用这个属性为PopupMenu动态指定在VS 属性栏中找到Manger属性下拉框指定所以当使用PopupMenu时需要指定相应的BarManager。当你打开Popup Menu 的Customzie面板时下面的背景面板就是管理的BarManger。你可以拖拽BarManager 中已经添加的Bar 命令到PopupMenu中或者在PopupMenu中直接添加Add然后你会发现添加的Bar 命令会自动同步到关联的BarManger中坐实了BarManager作为管理器的地位。Tips图片样式可以通过选中相应的Bar 命令操作1然后在属性栏中通过Iamge选择。3. 添加事件Event有了静态的UI之后肯定是要添加事件来实现相应的业务场景。3.1 鼠标事件一般情况下都是通过鼠标右键点击来显示菜单Menu。DevExpress 中也存在监控鼠标的事件。通过设计器Designer添加会生成如下事件private void gridView1_MouseUp(object sender, MouseEventArgs e) { }其实DevExpress里面基本都会包含sender和e这两个参数。sender代表的含义是一样的代表了触发该事件的对象。而e主要区别在于类型即不同的事件类型是不同的。这里鼠标事件的对象类型时MouseEventAtgs它所包含的属性和方法可以F12查看。因为没有特别复杂的方法不在做介绍可以自己查看。这里主要使用Button 属性这是一个MouseButton类型的枚举值F12查看所以需要对gridView1_MouseUp这个事件做如下实现private void gridView1_MouseUp(object sender, MouseEventArgs e) { // 通过鼠标右键Right 来判断是否需要显示PopupMenu if (e.Button MouseButtons.Right) { popupMenu1.ShowPopup(Control.MousePosition); } }对于popupMenu1.ShowPopup方法还是需要自己去查看定义。我们都知道在Winform下一个窗口是包含三个文件的其中一个是.Designer.cs这里包含了UI组件拖拽时自动生成的代码。所以可以很容易查看到popupMenu1的类型DevExpress.XtraBars.PopupMenu然后F12查看这个类所包含的属性和方法 。自己去查看是一个不错的学习方式和体验。英语不好可以复制翻译慢慢就会发现变来变去其实就几个关键单词。3.2 BarItems 添加事件这里可以通过监控BarManager的点击事件然后判断去触发哪个子项的业务。或者直接在Bar 命令操作1的事件栏中定义事件。事件栏中定义在BarManger 的事件中定义barManager1_ItemClick实现如下即当Bar 命令被点击时会触发什么样的操作。private void barManager1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (e.Item.Name barButtonItem1) { e.Item.ItemClick ShowMessage_ItemClick; } else if (e.Item.Name barButtonItem2) { MessageBox.Show(进入barButtonItem2, Info); } else { MessageBox.Show(没进入, Info); } } private void ShowMessage_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { MessageBox.Show(进入barButtonItem1, Info); }4. Tips细心的你可能发现了右键有个子Menu还没有子项这里就自己试试添加UI以及业务实现吧。以下