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. Vue教程:windows下安装npm和cnpm

    [安装步骤] 一.安装node.js 1.前往node.js官网下载并安装工具,这里安装路径选到D盘,D:\Program Files\nodejs 安装完毕在命令行输入以下命令测试是否安装成功,正确 ...

  2. [转]9.2.3 .net core 通过TagHelper封装控件

    本文转自:https://www.cnblogs.com/BenDan2002/p/6170624.html .net core 除了继续保留.net framework的HtmlHelper的写法以 ...

  3. springboot 源码笔记

    1.springAppication构造器 基于getSpringFactoriesInstances方法构造如下类(获取文件内容在META-INF/spring.factories文件中) 1.1 ...

  4. [转] 疯狂的JSONP

      何为跨域?何为JSONP?JSONP技术能实现什么?是否有必要使用JSONP技术? 跨域 就是由于JavaScript同源策略的限制,使得a.com域名下的js无法操作b.com或c.a.com域 ...

  5. Spring boot --- Spring Oauth(三)

    本节将学习 spring security oauth  实现单点登录 概述 首先我们来了解什么是单点登录.看下面两张图就明白了. 很明显,单点登录最重要解决的就是登录和注销的功能,今天的例子,可以用 ...

  6. CentOS7下SVN server的安装与配置

    CentOS7通过yum install命令进行安装SVN(参考:http://subversion.apache.org/packages.html#centos) $ yum install su ...

  7. Java生成xlsx格式的excel文件

    xlsx格式的写入的数据量据说有百万级,结合实际需要该格式. public static void main(String[] args) throws Exception { OutputStrea ...

  8. java工具类-交易码

    /** * 功能描述:交易码 * */ public class TransCode { //登录 public static final String LOGIN="A001"; ...

  9. spring boot入门笔记 (二) - application.properties配置文件

    项目最重要的一个东西,用来定义整个项目的一些东西(端口.访问项目的名称.数据源.日志.集成mybatis等框架.静态资源目录.thymeleaf.热部署等),很重要很重要的. #整个项目的端口号,默认 ...

  10. Docker 更改镜像存储位置

    在使用 Docker 的过程中,如果我们一切都以默认的设置进行操作的话,在使用一段时间之后你应该会发现系统的根目录空间越来越少,直到有一天发现空间都被占满了,最后发现原来是被 Docker 占用了.所 ...