XtraEditors四、TextEdit、ButtonEdit、PictureEdit、RadioGroup、PopupContainerEdit


image

一、TextEdit控件

以文本框的形式綁定各種形式的選擇框;

文本框設置 輸入 密碼 字符 時, 要有 * 號掩蓋輸入的字符,

代碼如下:

textEdit1.Properties.PasswordChar = ’ * ’;

二、ButtonEdit 控件

以 button按鈕的形式 綁定各種形式的選擇框;

1、控件樣式

截圖

2、設置文本框右側的按鈕

在屬性中Properties下的Buttons項,進入EditorButton集合編輯器,

image

ButtonEdit的文本框右側的按鈕可以有多個,在EditorButton集合編輯器中都可以進行設置。

在文本框右側的按鈕,全是DevExpress.XtraEditors.Controls.EditorButton類型的。

注意: Caption和Kind選項

3、按鈕類型

在每個按鈕的Kind屬性中,可以設置按鈕的類型。

按鈕類型保存在枚舉DevExpress.XtraEditors.Controls.ButtonPredefines中,該枚舉包括如下枚舉值(共計19個):

  1. Close,一個x型圖案

  2. Delete,一個x型圖案,線條比Close要細一些

  3. SpinRight,右三角形箭頭

  4. SpinLeft,左三角形箭頭

  5. SpinDown,下三角形箭頭

  6. SpinUp,上三角形箭頭

  7. Combo,同SpinDown

  8. Right,同SpinRight

  9. Left,同SpinLeft

  10. Up,同SpinUp

  11. Down,同SpinDown

  12. DropDown,同SpinDown

  13. Glyph,圖案可由Image屬性指定(當Kind被設置為Glyph時,可以通過設置Image屬性來指定圖案)

  14. Ellipsis,省略號,三個點,(默認圖案)

  15. OK,一個√型圖案

  16. Plus,一個+型圖案

  17. Minus,一個-型圖案

  18. Redo,撤銷圖案,一個順時針轉動最后指向右側的箭頭

  19. Undo,重做圖案,一個逆時針轉動最后指向右側的箭頭

4、按鈕的點擊事件

可以在屬性管理器中事件里Properties下的ButtonClick事件中指定

技术分享

這里面就存在一個問題,如果文本框中放置了多個按鈕,該如何分辨出我點的是哪個按鈕呢?

可以在事件中根據Caption、Kind等屬性判斷當前鼠標點擊的是哪個Button,再執行相應的邏輯。

如下所示:

包括兩個按鈕(類型分別是Ellipsis和Delete),其中Ellipsis類型的按鈕用於瀏覽文件,Delete類型的按鈕用於清空選中數據。

判斷按鈕類型(Kind)執行相應邏輯的代碼如下:

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 = "";
    }
}

三、PictureEdit控件

可在控件里添加圖片

PictureEdit 可以直接綁定Image 或者 Byte Array

當我們在PictureEdit中放置一個較大圖片的時候,SizeMode屬性可以設置為Zoom等

四、RadioGroup控件

 

 

其Columns屬性決定顯示的列數, 默認值為: 0時,效果如下:

示例代碼:

private void CommonControlsForm_Load(object sender, EventArgs e)
        {
            object[] ageArr = new object[] { 8, 12, 16 }; string[] descriptionArr = new string[] { "baby", "loli", "teenage" }; for(int i = 0; i < ageArr.Length; i++) { RadioGroupItem item = new RadioGroupItem(ageArr[i], descriptionArr[i]); radioGroup1.Properties.Items.Add(item); } // radioGroup1.EditValue = 12; }

當Columns屬性值為2時,效果如下:

相關代碼

void Main()
{
    //生成一個radioGroup,動態生成選項
    RadioGroup radioGroupY = new RadioGroup();
    foreach (TitleModel s in nodeYList)
    {
        //每一個單元按鈕對應的選項item
        RadioGroupItem item = new RadioGroupItem();
        //設置選項的value值
        item.Value = s.TitleKey;
        //設置選項的描述值 即 要顯示的值
        item.Description = s.Title;
        //使選項啟用
        item.Enabled = true;
        //將新增的選項添加到radiogroup的Items中
        radioGroupY.Properties.Items.Add(item);
    }
    //設置默認選中值
    radioGroupY.EditValue = yList[i].TitleKey;//設置value
    

    //獲取選中項的值:RadioGroup.Properties.Items[RadioGroup.SelectIndex].Value

    //獲取選中項的顯示值:
    this.radioGroup1.Properties.Items[RadioGroup.SelectIndex].Description
this.radioGroup1.Properties.Items.GetItemByValue(Convert.ToInt32(radioGroup1.EditValue)).Description;

}

//時間
private void chkReviewResultTotal_SelectedIndexChanged(object sender, EventArgs e)
{

    if (chkReviewResultTotal.SelectedIndex == 1)
    {
        //----
    }
}

 

五、PopupControlContainer控件

1、 概述

      PopupControlContainer控件能夠以面板的形式包含其他控件,或者以DropDownButton控件的下拉框的形式出現。

      PopupControlContainer控件通過DropDownButton控件的DropDownControl屬性進行綁定,在綁定后, PopupControlContainer控件的AllowDrop屬性要設成True;

2、 用法

  • 與 DropDownButton組合使用 ,指派container 到DropDownButton.DropDownControl 屬性。
  • 與 bar button組合使用 , 指派container 到 BarButtonItem.DropDownControl 屬性。    
  • 與 Ribbon Form中的Application Button 組合使用 , 指派container 到 RibbonControl.ApplicationButtonDropDownControl屬性。    

下拉彈出控件PopupContainerEdit 經常與 PopupContainerControl  組合使用

效果如下:

主要功能是在界面中點擊PopupContainerEdit右側的下拉箭頭,然后,會彈出下拉彈窗控件PopupContainerControl,

最后選擇完數據后關閉彈窗。

popupContainerControl1.OwnerEdit.ClosePopup();

主要用到的控件有 PopupContainerEdit 和 PopupContainerControl

PopupContainerControl主要負責顯示下拉彈窗中的內容

PopupContainerEdit類似一個文本框,右邊有一個下拉箭頭。

PopupContainerEdit和PopupContainerControl產生關聯,主要通過以下代碼實現

this.popupContainerEdit1.Properties.PopupControl = this.popupContainerControl1;

相關代碼:

using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form4 : Form { public Form4() { InitializeComponent(); } private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e) { var name = e.Node["Name"].ToString(); if (popupContainerEdit1.IsPopupOpen) { // 設置名稱 popupContainerEdit1.Text = name; // 關閉彈窗  popupContainerEdit1.ClosePopup(); } } private void Form4_Load(object sender, EventArgs e) { treeList1.ExpandAll(); popupContainerEdit1.Text = "全部"; } } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM