DevExpress 控件学习记录2

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、实现弹出式菜单

经常需要通过鼠标右键打开菜单,进行相应的操作。这里需要使用到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自带这个属性MousePosition)

1.添加BarManager 和 PopupMenu

通过工具箱添加这两组件到相应的窗体上
在这里插入图片描述

2.添加Bar 命令(Command)

2.1 通过使用BarManager 的Customize 添加

在这里插入图片描述

2.2 在BarManager中添加

通过定制面板添加。
点击 ‘modify 修改’项,可以在里面进行添加(Add),删除(Delete) bar命令等操作
在这里插入图片描述
在添加Bar 命令时,会发现有很多种类型的BarItem:
在这里插入图片描述
这里简单介绍本次会用到的类型Type,其他的类型我也没玩过,可以自己尝试一下。

类型Type描述Description
Button(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)的事件栏中,定义事件。

  1. 事件栏中定义
    在这里插入图片描述
  2. 在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以及业务实现吧。(以下)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值