zoukankan      html  css  js  c++  java
  • 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 = "全部";
            }
        }
    }

     

  • 相关阅读:
    Hdu2222——Keywords Search(AC自动机模板题)
    20180804的Test
    Poj3764---The xor-longest Path
    Bzoj4567---背单词
    Bzoj1590——Secret Message(Trie)
    Bzoj 1212----L语言(Trie)
    Poj1056---IMMEDIATE DECODABILITY(Trie)
    The Xor Largest Pair(Trie)
    Bzoj 4260——Codechef REBXOR(Trie)
    [接上一篇]spring boot启动成功之后,测试用例中需要使用的注入对象均为null
  • 原文地址:https://www.cnblogs.com/springsnow/p/10298714.html
Copyright © 2011-2022 走看看