使用 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. haffman哈夫曼编码的实现

    <span style="font-size:18px;">/* 1.在一棵二叉树中,我们定义从A节点到B节点所经过的分支序列为从A节点到B节点的路径: 定义从A节点到 ...

  2. Java程序员职业规划

    Java 程序员职业规划 无论你是学习了 Java 即将进入企业工作,还是已经踏入了工作岗位的程序员.但是面对层出不穷的新技术,激增的就业压力,不断分化的开发角色,再加上 IT 发展的不明确,做出职业 ...

  3. linux命令之用户和用户组

    知识点: 1.-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限 2.将root用户添加到supergroup用户组 groupadd supergroup ...

  4. 利用border制作三角形原理

    网站前端页面中,有时候会使用一些三角形,除了使用图片的方式之外,利用css的border属性也可以做出相对应的三角形.那么,利用border是如何实现三角形的制作的呢? 先看下面一个例子: CSS代码 ...

  5. 【linux】Centos下登陆mysql报错#1045 - Access denied for user 'root'@'localhost' (using password: NO)

    创建mysql  远程链接 grant all privileges on *.* to 'test'@"%" identified by "test666 with g ...

  6. WEB安全第三篇--控制请求的艺术:CSRF和SSRF

    零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的pay ...

  7. Swift - 实现tableView单选系统样式

    // 实现tableView单选 import UIKit class ViewController: UIViewController { var tableView: UITableView! o ...

  8. JS拖拽事件

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. loading图标modal弹窗 和jquery ajax的关系

    在ajax配置中 ,async:false,非异步,modal窗口会失效,只有重新设置为async:true,或者删除async的设置,则loading的模态框才能展示出来 loading图标的模态框 ...

  10. You don't have permission to access

    局域网内配置Discuz,web端访问server端,出现以下反馈: Forbidden You don't have permission to access / on this server. 网 ...