本文爲我的.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
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!