DevExpress控件-ButtonEdit控件的使用(图文)

本文为我的.NET控件库DevExpress使用笔记,我的DevExpress版本为15.1.7

1、控件类型全称:DevExpress.XtraEditors.ButtonEdit

2、控件所在程序集:DevExpress.XtraEditors.v15.1.7.dll

3、工具箱内分类:DX.15.1.7: Common Controls

4、控件样式截图


5、在属性管理器中Properties下的Buttons里,可以进入EditorButton集合编辑器设置文本框右侧的按钮。文本框右侧的按钮可以有不止一个,在EditorButton集合编辑器中都可以进行设置。在文本框右侧的按钮,都是DevExpress.XtraEditors.Controls.EditorButton类型的。

6、在每个按钮的Kind属性中,可以设置按钮的类型。按钮类型保存在枚举DevExpress.XtraEditors.Controls.ButtonPredefines中,该枚举包括如下枚举值(共计19个):

Close,一个x型图案

SpinRight,方向指向右侧的三角形箭头

SpinLeft,方向指向左侧的三角形箭头

SpinDown,方向指向下侧的三角形箭头

SpinUp,方向指向上侧的三角形箭头

Combo,同SpinDown

Right,同SpinRight

Left,同SpinLeft

Up,同SpinUp

Down,同SpinDown

Glyph,图案可由Image属性指定

Ellipsis,省略号,三个点,默认图案

Delete,一个x型图案,线条比Close要细一些

OK,一个√型图案

Plus,一个+型图案

Minus,一个-型图案

Redo,撤销图案,一个顺时针转动最后指向右侧的箭头

Undo,重做图案,一个逆时针转动最后指向右侧的箭头

DropDown,同SpinDown

其中,当Kind被设置为Glyph时,可以通过设置Image属性来指定图案

7、点击按钮的事件,可以在属性管理器中事件里Properties下的ButtonClick事件中指定

这里面就存在一个问题,如果文本框中放置了多个按钮,该如何分辨出我点的是哪个按钮呢?

后来我发现,ButtonClick函数的传入参数如下:

 private void Btn_music_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)

这里的参数e为DevExpress.XtraEditors.Controls.ButtonPressedEventArgs类型,该类型中有个字段是Button。
 public EditorButton Button { get; }

可以在事件中根据Caption、Kinder等属性判断当前鼠标点击的是哪个Button,再执行相应的逻辑。

如在一个包括两个按钮(类型分别是Ellipse和Delete),其中Ellipse类型的按钮用于浏览文件,Delete类型的按钮用于清空选中数据。

一段判断按钮类型并执行相应逻辑的代码如下:

 private void Btn_music_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            if (e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis)
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
 
                openFileDialog.AutoUpgradeEnabled = true;
                openFileDialog.CheckFileExists = true;
                openFileDialog.CheckPathExists = true;
                openFileDialog.ReadOnlyChecked = false;
                openFileDialog.Multiselect = false;
                openFileDialog.FileName = "";
 
                openFileDialog.Filter = "所有文件|*.*";
                openFileDialog.Title = "浏览";
 
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    this.btn_music.Text = openFileDialog.SafeFileName;
                }
            }
            else if (e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Delete)
            {
                this.btn_music.Text = "";
            }
        }
结束
--------------------- 
作者:邵_金波 
来源:CSDN 
原文:https://blog.csdn.net/qq395537505/article/details/50735493 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值