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

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("请选择", "");
dt.Rows.Add("选项一", "");
dt.Rows.Add("选项二", "");
dt.Rows.Add("选项三", ""); comboBox1.DataSource = dt;
comboBox1.DisplayMember = "Text"; // Text,即显式的文本
comboBox1.ValueMember = "Value"; // Value,即实际的值
comboBox1.SelectedIndex = ; // 设置为默认选中第一个
}
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 = ; i < ; i++)
{
if (i==)
{
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
{
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 = ; 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); }

XtraEditors二、ComboBox、ComboBoxEdit、CheckedComboBoxEdit的更多相关文章

  1. vb combobox 用法问题总结

    问题一 combobox 通过type类型,如下代码,通过选取name名称(改变combobox的名称)得到 其Id Type User id As Integer userName As Strin ...

  2. DevExpress下拉多选框 CheckComboboxEdit、CheckedListBoxControl

    CheckComboboxEdit //清空项            checkedComboBoxEdit1.Properties.Items.Clear(); //自定义数组            ...

  3. Python Tinker学习笔记

    一直在简单看看python,这次项目需要做个界面,最好是要跨平台的,之前考虑QT,但是树莓派上QT跨平台编译一直装这有问题,后来发现Python不就可以么? 于是决定用python做个界面,但是做界面 ...

  4. C# 窗体相关知识

    一  窗体 固定窗体大小,并不能最大/最小化: FormBorderStyle属性设置为:FixedSingleMaximizeBox = falseMinimizeBox = false都是在For ...

  5. Winform开发之ComboBox和ComboBoxEdit控件绑定key/value数据

    使用 ComboBox 控件绑定key/value值: 因为 ComboBox 是有 DataSource 属性的,所以它可以直接绑定数据源,如 DataTable.ListItem 等. 使用 Da ...

  6. vs2013+MVC3.0+EasyUI的ComboBox联动使用(二)

     vs2013+MVC3.0+EasyUI的ComboBox联动使用(二) 简单介绍:在vs2013(.net4.0)中使用MVC3.0对于EasyUI中ComboBox的联动使用. 载入Comb ...

  7. 第二百二十三节,jQuery EasyUI,ComboBox(下拉列表框)组件

    jQuery EasyUI,ComboBox(下拉列表框)组件,可以远程加载数据的下拉列表组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 C ...

  8. ExtJS基础知识总结:自定义日历和ComboBox控件(二)

    概述 1.ExtJS 5不支持日期选择框中只选择年月,为了满足ExtJs5可以实现选择年月的功能,查询网上资料,整理出来了相应的处理方式,最终实现的效果如下图: 2.ExtJS 控件丰富,如果需要实现 ...

  9. 用ActiveX 创建自己的comboBox 控件(二)

    3.0 添加事件 3.1 添加OnSelChange 事件 当用户选中列表项的时候触发该事件.(不只是选择改变时触发,本次选择和上次相同时也触发): 添加完成后,在ActivexcomboBox.id ...

随机推荐

  1. VM CentOS 问题汇总

    1. 锁定文件失败 / 模块启动失败 如下图问题: 原因分析: 虚拟机为了防止有多虚拟机共用一个虚拟磁盘(就是后 缀为.vmdk那个文件)造成数据的丢失等问题,每次启动虚拟机时会给每个虚拟磁盘加一个磁 ...

  2. 关于Mysql+EF6本地运行和发布没有问题,发布到服务器上出现问题的解决方案

    这个问题折磨了我差不多两天,网上各种方法也找了个遍,但是都没有解决我的问题,后面通过自己仔细分析问题和排查,终于把问题解决了,以下是我的解决问题的步骤,希望能帮到各位,不要再被这些问题坑了 1,项目实 ...

  3. TFS Negotiate方式登录的IIS配置

    使用vsts-agent连接到tfs(tfs2017)配置代理客户端,可以通过PAT.Negotiate.Integrated.Alternate四种方式登录.(参考) 默认情况下,采用Negotia ...

  4. Node.js学习笔记(八) --- Node.js的路由模块封装

    1 .模块化的方式封装 整理中… 2 .封装仿照 express 的路由整理中…

  5. SEDA架构程序实现

    一.SEDA SEDA全称是:stage event driver architecture,中文直译为“分阶段的事件驱动架构”,它旨在结合事件驱动和多线程模式两者的优点,从而做到易扩展,解耦合,高并 ...

  6. An internal error occurred during: "Updating status for Tomcat v7.0 Server at localhost..."

    tomcat启动maven工程的时候提示如下错误信息: An internal error occurred during: "Updating status for Tomcat v7.0 ...

  7. java获得Tomcat服务器的根目录下的内容

    File f2=new File(System.getProperty("catalina.home")+ File.separator+"webapps"+F ...

  8. 求N的因子之和。

    理论依据: 代码: /* 显然,数据够大的时候,数组要用 __int64 */ #include<iostream> #include<map> #include<cst ...

  9. 实习小结(四)--- MyBatis Generator使用

    第一次听闻MyBatis Generator插件很是惊讶,已经有这么便捷方式的工具通过数据库表来自动生成实体类,映射文件,接口以及帮助类,而且可以通过自己写方法来增加中文注释,遂来学习一波.首先先建一 ...

  10. js-用于检测类数组对象的函数

    //判定o是否是一个类数组对象 //字符串和函数有length属性,但是它们 //可以用typeof检测将其排除.在客户端JavaScript中,DOM文本节点 //也有length属性,需要用额外判 ...