本文为个人.NET控件库DevExpress使用笔记,个人DevExpress版本为13.1c#
一、控件类型全称:DevExpress.XtraEditors.ButtonEdit编辑器
二、控件所在程序集:DevExpress.XtraEditors.v13.1.dll函数
三、工具箱内分类:DX.13.1: Common Controls工具
四、控件样式截图this
五、在属性管理器中Properties下的Buttons里,能够进入EditorButton集合编辑器设置文本框右侧的按钮。文本框右侧的按钮能够有不止一个,在EditorButton集合编辑器中均可以进行设置。在文本框右侧的按钮,都是DevExpress.XtraEditors.Controls.EditorButton类型的。code
六、在每一个按钮的Kind属性中,能够设置按钮的类型。按钮类型保存在枚举DevExpress.XtraEditors.Controls.ButtonPredefines中,该枚举包括以下枚举值(共计19个):事件
Close,一个x型图案ip
SpinRight,方向指向右侧的三角形箭头get
SpinLeft,方向指向左侧的三角形箭头it
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属性来指定图案
七、点击按钮的事件,能够在属性管理器中事件里Properties下的ButtonClick事件中指定
这里面就存在一个问题,若是文本框中放置了多个按钮,该如何分辨出我点的是哪一个按钮呢?
后来我发现,ButtonClick函数的传入参数以下:
private void buttonEdit1_Properties_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 buttonEdit1_Properties_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.buttonEdit1.Text = openFileDialog.FileName; } } else if (e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Delete) { this.buttonEdit1.Text = ""; } }
END