使用 ComboBox 控件绑定key/value值:

因为 ComboBox 是有 DataSource 属性的,所以它可以直接绑定数据源,如 DataTable、ListItem 等。

使用 DataTable 直接绑定:

     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(); //获取选中项的值

使用 ListItem 实现 key/value:

    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()
{
List<ListItem> list = new List<ListItem>(); list.Add(new ListItem("请选择", ""));
list.Add(new ListItem("选项一", ""));
list.Add(new ListItem("选项二", ""));
list.Add(new ListItem("选项三", "")); comboBox1.DisplayMember = "Text"; // Text,即显式的文本
comboBox1.ValueMember = "Value"; // Value,即实际的值
comboBox1.DataSource = list;
comboBox1.SelectedValue = ""; // 设置选择值为 0 的项
}
string text = (this.comboBox1.SelectedItem as ListItem).Text;      //获取选中项文本
string value = (this.comboBox1.SelectedItem as ListItem).Value; //获取选中项的值

使用 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; //获取选中项的值
}

Winform开发之ComboBox和ComboBoxEdit控件绑定key/value数据的更多相关文章

  1. C#端加载数据库,Combobox与Node控件绑定数据源demo示例

    最近一直在做网页.用的js比较多,最近需要做一个C#相关的demo,一开始还有点不适应,写了几句有点感觉了 本篇博客的主要内容是C#怎么读取数据库文件里的数据以及相关控件如何绑定数据源,所做的Demo ...

  2. VS环境下,DEV插件的ComboBoxEdit控件最简单的数据源绑定和获取方法

    使用 ComboBoxEdit 控件绑定key/value值: 因为 ComboBoxEdit 没有 DataSource 属性,所以不能直接绑定数据源,只能一项一项的添加. 首先创建一个类ListI ...

  3. .Net平台Winform两个ComboBox控件绑定同一个数据源

    今天WINFROM编程遇到这么一个问题:是有关WINFORM中两个comboBox控件绑定同一个数据源的问题,在窗体的界面上有两个comboBox,我在Form1_Load中对他们做了数据绑定(具体代 ...

  4. ComboBox控件绑定数据源

    最近在研究机房收费系统的组合查询的方法时,看到了ComboBox控件可以进行数据绑定,我觉得这个功能真的很不错,可以给我省去很多的麻烦. 下面是我组合查询窗体界面 一.数据转换方法 现在我们开看一下我 ...

  5. DevExpress 中 用 LookUpEdit 控件 代替 ComboBoxEdit 控件来绑定 DataTable

    绑定数据及定义列信息 LookUpEdit lue = lookUpEdit1; DataTable dt = new DataTable(); dt.Columns.Add(new DataColu ...

  6. [WinForm]WinForm跨线程UI操作常用控件类大全

    前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作.不过会有一个问题:就是涉及到跨线程操作UI元素. 相信才开始接触的人一定会遇上这个问题. 为了解决这个问 ...

  7. SNF开发平台WinForm之三-开发-单表选择控件创建-SNF快速开发平台3.3-Spring.Net.Framework

    3.1运行效果: 3.2开发实现: 3.2.1 这个开发与第一个开发操作步骤是一致的,不同之处就是在生成完代码之后,留下如下圈红程序,其它删除. 第一个开发地址:开发-单表表格编辑管理页面 http: ...

  8. 在Winform开发框架中,利用DevExpress控件实现数据的快速录入和选择

    在实际的项目开发过程中,有好的控件或者功能模块,我都是想办法尽可能集成到我的WInform开发框架中,这样后面开发项目起来,就可以节省很多研究时间,并能重复使用,非常高效方便.在我很早之前的一篇博客& ...

  9. SNF开发平台WinForm之十五-时间轴控件使用-SNF快速开发平台3.3-Spring.Net.Framework

    一.显示效果如下: 二.在控件库里选择UCTimeAxis 拖拽到窗体里. 三.加入以下代码,在load事件里进行调用就可以运行了. #region 给时间轴控件加载数据 private void U ...

随机推荐

  1. JBPM4.4_jBPM4.4应用(与Spring集成&自行控制事务等)

    1. jBPM4.4应用 1.1. 与Spring集成(jBPM4.4 Developers Guide, Chapter 17. Spring Integration) 1.1.1. 在jbpm.c ...

  2. MySQL<多表操作>

    多表操作 外键 什么是外键 外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一性约束. 外键用于建立和加强两个表数据之间的链接. 为表添加外键约束 想要真正连接两个表的数据,就需要为 ...

  3. MySQL<添加、更新与删除数据>

    添加.更新与删除数据 添加数据 为表中所有字段添加数据 INSERT INTO 表名(字段名1,字段名2,……) VALUES(值1,值2,……); insert into 表名 values(值1, ...

  4. shell基础篇(五)条件判断

    写脚本时:有时要判断字符串是否相等,数字测试.这对后面学习的shell语句,循环,条件语句做好基础. 条件判断格式  1. test condition : test命令  2. [ conditio ...

  5. Python 流程控制:while

    while 语法如下,当条件为假时循环才退出,否则会一直循环下去: while 条件: 执行语句 当条件为假时,才会执行else语句: while 条件: 执行语句 else: 执行语句

  6. 微信小程序实现文字跑马灯

    wxml: <view>1 显示完后再显示</view> <view class="example"> <view class=" ...

  7. js方法随机抽取n个随机数

    function getImageRandomPosition(){ do { var n = Math.floor(Math.random() * 12);//n为随机出现的0-11之内的数值 fo ...

  8. iOS性能调优系列(全)

    总结: 三类工具 基础工具 (NSLog的方式记录运行时间.) 性能工具.检测各个部分的性能表现,找出性能瓶颈 内存工具.检查内存正确性和内存使用效率 性能工具: 可以衡量CPU的使用,时间的消耗,电 ...

  9. IOS实例方法和类方法的区别

    类方法和实例方法   实例方法是— 类开头是+ 实例方法是用实例对象访问,类方法的对象是类而不是实例,通常创建对象或者工具类. 在实例方法里,根据继承原理发送消息给self和super其实都是发送给s ...

  10. 【WebService】使用jaxb完成对象和xml的转换

    package com.slp.jxmarshaller; /** * Created by sanglp on 2017/2/26. */ public class ClassName { priv ...