c# combbox 怎么用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# combbox 怎么用相关的知识,希望对你有一定的参考价值。
相信你在网页上也操作过这个控件,也了解它的用途吧,最大的优点就是方便用户选择内容,但comboBox需要我们编程人员添加上去,有两种方法,第一种,就是手动添加,这个简单,但有缺陷,当我在数据库插入一条新的数据时,comboBox不能自动更新数据,所以我在这里向你提供第二种方法,用代码的方式绑定comboBox的数据源!代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
namespace Combox
public partial class Form1 : Form
public Form1()
InitializeComponent();
//定义查询方法,获取到数据库相应的数据
public DataTable SelectContent(string strSql)
DataTable dt=null;
//连接字符串
string connStr = "server=.;database=jiajiaodb;uid=sa;pwd=123456";
//创建连接对象
using (SqlConnection conn = new SqlConnection(connStr))
//打开连接对象
conn.Open();
//创建命令对象
SqlCommand cmd = new SqlCommand(strSql,conn);
SqlDataReader reader = cmd.ExecuteReader();
//判断reader里面是否有值。保存到dt中
if (reader != null && reader.HasRows)
dt = new DataTable();
dt.Load(reader);
return dt;
private void Form1_Load(object sender, EventArgs e)
//实例化DataTable对象,来接收方法的返回值,
DataTable ds = new DataTable();
//SQL语句
string strSql="select * from userInfo";
//调用查询方法,获取数据
ds = SelectContent(strSql);
//绑定ComboBox数据源
this.cbName.DataSource = ds;
//指定要显示的字段,这里我要显示的,用户表中的姓名字段
this.cbName.DisplayMember = "userName";
结果如下图:
参考技术A Winform中ComboBox这个控件与WebForm中DropDownList提供的功能是一样的.但用DropDownList习惯了的朋友再来用ComboBox会发现,ComboBox一点也不好用.那,在这里其实是不能用DropDownList的操作方式来操作ComboBox.------
如果绑定固定数据,可以使用.
ComboBox1.Items.Add("项1");
ComboBox1.Items.Add("项2");
这种简单的方式为ComboBox来绑定数据.但有弊端.
主要的原因是,不能直接给ComboBox同时绑定要显示的内容(即Text)和与内容对应的值(即Value).
因为Add方法的参数是一个Object.而不是DropDownList中ListItem.这样就有点麻烦了.
要同时绑定Text和Value给ComboBox,必须使用这个办法,如下:
------
新建一个类,提供Text,Value属性.
public class ComboxItem
public string Text = "";
public string Value = "";
public ComboxItem(string _Text, string _Value)
Text = _Text;
Value = _Value;
public override string ToString()
return Text;
这么使用:
ComboBox1.Items.Add(New Common.ComboxItem("Text1", "Value1"))
ComboBox1.Items.Add(New Common.ComboxItem("Text2", "Value2"))
这样绑定的固定数据就可以同时有内容和内容的值了.
--
当然取值也不能直接取,需要做一下转换.
(ComboxItem)ComboBox1.SelectedItem).Value
------
以上是绑定固定数据,下面是绑定动态数据.
------
相比之下.绑定动态数据就简单多了.和DropDownList使用差不多.
.DisplayMember 属性是显示项.
.Value 属性是值项.
if ((dt != null)) //dt is a DataTable
//此处是向dt中添加其他你想要的值.可以不使用.
System.Data.DataRow drNon = dt.NewRow();
drNon["ItemValue"] = "0";
drNon["ItemText"] = "";
dt.Rows.InsertAt(drNon, 0);
cbl_Ordtyp.DataSource = dt;//绑定数据.
cbl_Ordtyp.DisplayMember = "ITEMTEXT";//显示项
cbl_Ordtyp.ValueMember = "ITEMVALUE";//值项
--
取值:
(System.Data.DataRowView)item["ITEMVALUE"] //根据需要,一般转换成string类型使用
------
差不多ComboBox的操作就这些了.我觉得够详细了吧.你琢磨琢磨.本回答被提问者采纳
以上是关于c# combbox 怎么用的主要内容,如果未能解决你的问题,请参考以下文章
基于ASP.NET MVC 下的Extjs的Combbox加载速率问题,终于解决啦:)
JavaScript [ExtJS]自动调整Ext.form.CombBox的大小以适应其内容
C# 如何在一个Datagridview 的 某一个cell里面 绑定一个自定义的combobox