本文爲個人.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