zoukankan      html  css  js  c++  java
  • XtraEditors二、ComboBox、ComboBoxEdit、CheckedComboBoxEdit

    https://documentation.devexpress.com/WindowsForms/DevExpress.XtraEditors.ComboBoxEdit.class

    imageimage

    1、使用Winform自带ComboBox控件,可直接绑定数据源

    因为Winform自带 ComboBox 是有 DataSource 属性的,所以它可以直接绑定数据源,如 DataTable、ListItem 等。使用 DataTable 或List直接绑定。

    public void BindSource()
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("Text", Type.GetType("System.String"));
                dt.Columns.Add("Value", Type.GetType("System.String"));
    
                dt.Rows.Add("请选择", "0");
                dt.Rows.Add("选项一", "1");
                dt.Rows.Add("选项二", "2");
                dt.Rows.Add("选项三", "3");
    
                comboBox1.DataSource = dt;
                comboBox1.DisplayMember = "Text";   // Text,即显式的文本
                comboBox1.ValueMember = "Value";    // Value,即实际的值
                comboBox1.SelectedIndex = 0;        //  设置为默认选中第一个
            }
    string text = this.comboBox1.Text;      //获取选中项文本
    string value = this.comboBox1.SelectedValue.ToString();     //获取选中项的值

    2、ComboBoxEdit:不能直接绑定数据源,只能手工添加。

    使用 ComboBoxEdit 控件添加key/value项。

    因为 ComboBoxEdit 没有 DataSource 属性,所以不能直接绑定数据源,只能一项一项的添加。

    public class ListItem : Object
        {
            public string Text { get; set; }
    
            public string Value { get; set; }
    
            public ListItem(string text,string value)
            {
                this.Text = text;
                this.Value = value;
            }
    
            public override string ToString()
            {
                return this.Text;
            }
        }
    
    public void BindSource()
            {
                string text = string.Empty;
                string value = string.Empty;
    
                ListItem item = null;
    
                for (int i = 0; i < 4; i++)
                {
                    if (i==0)
                    {
                        text = "请选择";
                    }
                    else
                    {
                        text = "选项" + i.ToString();
                    }
                    value = i.ToString();
    
                    item = new ListItem(text, value);
                    this.comboBoxEdit1.Properties.Items.Add(item);
                }
            }

    获取选中项的值时,注意判断是否选择。

    string text = string.Empty;
    string value = string.Empty;
    
    if (comboBoxEdit1.SelectedIndex < 0)    //小于0,表示未选择,如果是输入的也小于0
    {
         text = comboBoxEdit1.Text.Trim();     //只能获取输入的文本
    }
    else
    {
         text= (comboBoxEdit1.SelectedItem as ListItem).Text;        //获取选中项文本
         value = (comboBoxEdit1.SelectedItem as ListItem).Value;        //获取选中项的值
    }

    3、CheckedComboBoxEdit:可直接绑定数据源

        //设置数据源
        checkedComboBoxEdit1.Properties.DataSource = Facility.GetList(factoryID);
        checkedComboBoxEdit1.Properties.DisplayMember = "Name";
        checkedComboBoxEdit1.Properties.ValueMember = "ID";
        //设置选中项
         checkedComboBoxEdit1.EditValue = strid
        
        //得到选择项的ID字符串(逗号分隔)
        object items = checkedComboBoxEdit1.Properties.GetCheckedItems();
        checkedComboBoxEdit1.SetEditValue(string.Empty);//重置 
        checkedComboBoxEdit1.Properties.Items.Clear();//清空数据源
        //循环项
        foreach (CheckedListBoxItem item in checkedComboBoxEdit1.Properties.Items)
        {
            item.CheckState = CheckState.Unchecked;
        }
    
        //手工绑定
        for (int i = 0; i < myList.Count; i++)
        {
            if (myList[i].isCheck == true)
                checkedComboBoxEdit1.Properties.Items.Add(i, myList[i].Name, CheckState.Checked, true);
            else
                checkedComboBoxEdit1.Properties.Items.Add(i, myList[i].Name, CheckState.Unchecked, true);
    
        }
  • 相关阅读:
    DataGridView单元格内容自动匹配下拉显示
    C#中datagridviewz中SelectionMode的四个属性的含义
    Visual Studio效率神器——超级扩展ReSharper安装和破解
    vue优化(1) vuecli3/4 【图片压缩 】||【文件压缩】
    DownValues, UpValues, SubValues, 和OwnValues之间的区别?
    Leonid Shifrin 的书
    python newbie——蒙特卡罗法计算圆周率
    python newbie——PE No.1
    指尖上的数学
    瞎猫碰到死耗子
  • 原文地址:https://www.cnblogs.com/springsnow/p/10191661.html
Copyright © 2011-2022 走看看