DevExpress_常用控件15_ButtonEdit

3.1 TextEdit控件

以文本框的形式绑定各种形式的选择框;

文本框设置 输入 密码 字符 时, 要有 * 号掩盖输入的字符,

代码如下:

textEdit1.Properties.PasswordChar = ’ * ’;


3.2 ButtonEdit 控件

以 button按钮的形式 绑定各种形式的选择框;

控件样式截图


两种方式, 进入EditorButton集合编辑器:设置文本框右侧的按钮

1. 在属性中Properties下的Buttons项

2. 窗体上点击ButtonEdit右上方的小箭头,弹出菜单中选择Buttons,也是一样的

ButtonEdit的文本框右侧的按钮可以有多个,在EditorButton集合编辑器中都可以进行设置。

在文本框右侧的按钮,全是DevExpress.XtraEditors.Controls.EditorButton类型的。

注意: Caption和Kind选项


在每个按钮的Kind属性中,可以设置按钮的类型。

按钮类型保存在枚举DevExpress.XtraEditors.Controls.ButtonPredefines中,

该枚举包括如下枚举值(共计19个):

  • Close,一个x型图案

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

  • SpinRight,右三角形箭头

  • SpinLeft,左三角形箭头

  • SpinDown,下三角形箭头

  • SpinUp,上三角形箭头

  • Combo,同SpinDown

  • Right,同SpinRight

  • Left,同SpinLeft

  • Up,同SpinUp

  • Down,同SpinDown

  • DropDown,同SpinDown

  • Glyph,图案可由Image属性指定

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

  • OK,一个√型图案

  • Plus,一个+型图案

  • Minus,一个-型图案

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

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

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


点击按钮的事件,

可以在属性管理器中事件里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、Kind等属性判断当前鼠标点击的是哪个Button,再执行相应的逻辑。


如下所示:

包括两个按钮(类型分别是Ellipsis和Delete),

其中Ellipsis类型的按钮用于浏览文件,

Delete类型的按钮用于清空选中数据。


效果如下:


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

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace DXApplication_1
{
    public partial class CommonControlsForm : DevExpress.XtraEditors.XtraForm
    {
        public CommonControlsForm()
        {
            InitializeComponent();
        }

        private void buttonEdit1_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 = true;

                openFileDialog.FileName = "";

                openFileDialog.Filter = "All Files | *.*";
                openFileDialog.Title = "Browser";

                if (openFileDialog.ShowDialog() == DialogResult.OK) {
                    buttonEdit1.Text = openFileDialog.SafeFileName;
                }
            }
            else if (e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Clear)
            {
                buttonEdit1.Text = "";
            }
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/springsnow/p/10298714.html