ComboBox就是我们常见的下拉框,对于此类控件,我们最关心的当然是数据的绑定和选择值得获取。

首先介绍个属性DropDownStyle,如果不允许ComboBox输入值,只能选择,就选DropDownList,默认是DropDown。可以试一试看看效果。

1、简单的数据加载和值选取

与前面介绍的CheckBox类似,还是在items集合中设置选择项,然后取值即可,贴图和代码

 //在combobox中选择值变化中直接取选中的项,然后赋值给label
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = comboBox1.SelectedItem.ToString() ;
}
 //点击按钮取值,即在其他方法中取到combobox选中的值,其实一样的
private void button1_Click(object sender, EventArgs e)
{
label1.Text =comboBox1.SelectedItem.ToString();
}

从代码中可以看到,无论是comboBox自身事件取值还是其他方法中取值,都是一样的

2、ComboBox绑定数组

这个也可以用数组赋值,上代码和图

//将数组项一一添加到checkedListBox上
String[] arr = new String[] { "足球","篮球","排球"};
for (int i = ; i < arr.Length; i++)
{
comboBox1.Items.Add(arr[i]);
}
//下面两种方法都可以为ComboBox赋初试选中值
//comboBox1.SelectedIndex = 0;
comboBox1.SelectedItem = "排球";

3、ComboBox绑定DataTable并获取选中的值

private void Form1_Load(object sender, EventArgs e)
{
//先构造一个dataTable,或者从数据库读取到一个,这里自己构造一个
DataTable dataTable = new DataTable("Student");
dataTable.Columns.Add("Number", typeof(String));
dataTable.Columns.Add("Name", typeof(String));
dataTable.Columns.Add("RealName", typeof(String));
dataTable.Columns.Add("UserName", typeof(String));
dataTable.Columns.Add("Address", typeof(String));
dataTable.Rows.Add(new String[] { "", "James", "张三", "james.zhang", "长沙" });
dataTable.Rows.Add(new String[] { "", "Mary", "李四", "mary.xu", "山东" });
dataTable.Rows.Add(new String[] { "", "Jack", "王五", "jack.li", "台湾" });
dataTable.Rows.Add(new String[] { "", "joy", "赵六", "joy.zhou", "济南" });
dataTable.Rows.Add(new String[] { "", "jay", "钱七", "jay.ji", "美国" });
dataTable.Rows.Add(new String[] { "", "stephen", "康忠鑫", "Stephen.Kang", "深圳" }); comboBox1.DataSource = dataTable;//绑定
comboBox1.DisplayMember = dataTable.Columns[].ColumnName;//显示的文本
comboBox1.ValueMember = dataTable.Columns[].ColumnName;//对应的值
} private void button1_Click(object sender, EventArgs e)
{
//获取显示的文本和选中的值
MessageBox.Show("您选择的是" + comboBox1.GetItemText(comboBox1.Items[comboBox1.SelectedIndex]) + "|" + comboBox1.SelectedValue);
}

下面的获取方法可以获取绑定的dataTable里面的其他列值

private void button1_Click(object sender, EventArgs e)
{
//获取显示的文本和选中的值
DataRowView dr = (DataRowView)comboBox1.Items[comboBox1.SelectedIndex];
MessageBox.Show(dr[].ToString());//根据dr的index,获取datable里面的其他值
}

这里取第四列Address

4、ComboBox绑定List,并获取值

  private void Form1_Load(object sender, EventArgs e)
{
//这里构造一个List,当然也可以从数据库中获取
IList<Student> lst = new List<Student>();
Student stu1 = new Student();
stu1.Name = "王五";
stu1.Address = "北京市";
lst.Add(stu1);
Student stu2 = new Student();
stu2.Name = "李四";
stu2.Address = "上海市";
lst.Add(stu2); comboBox1.DataSource = lst;//绑定
comboBox1.DisplayMember = "Name";//显示的文本
comboBox1.ValueMember ="Address";//对应的值
} private void button1_Click(object sender, EventArgs e)
{
//获取显示文本和值
MessageBox.Show("您选择的是" + comboBox1.GetItemText(comboBox1.Items[comboBox1.SelectedIndex]) + "|" + comboBox1.SelectedValue);
}

效果图

当然ComboBox还有很多种用法,比如加载带有多选框或单选按钮的列表,有感兴趣的朋友可以再研究,以后项目如果使用到偶也会贴出来的。

ListBox用法与ComboBox用法完全一样滴哦,只需将comboBox1换为listBox1即可。贴个图看看ListBox是个什么东东?

对,就是这样的,就是展示方式不一样而已。

Winform开发常用控件之ComboBox、ListBox的更多相关文章

  1. Winform开发常用控件之Checkbox和CheckedListBox

    Winform的开发基本都是基于控件事件的,也就是事件驱动型的. 多选框的放置和值的获取有很多种,这里介绍几个简单常用的方法 1.直接放置Checkbox,并获取Checkbox的值 上图 做法也非常 ...

  2. Winform开发常用控件之TreeView菜单导航和权限用法

    TreeView一个很棒的控件,我们在做WEB开发时常常犯困的一个东东.当然这里介绍winform里面的用法唠. 先介绍几个属性吧,CheckBoxes设置为true的话树形节点前面会出现checkb ...

  3. Winform开发常用控件之DataGridView的简单数据绑定——自动绑定

    DataGridView控件可谓是Winform开发的重点控件,对于数据的呈现和操作非常方便,DataGridView可谓是既简单又复杂.简单在于其已经集成了很多方法,复杂在于可以使用其实现复杂的数据 ...

  4. Winform开发常用控件之DataGridView的简单数据绑定——代码绑定DataSet、DataTable、IList、SqlDataReader

    前文介绍了Winform为DataGridView提供的数据自动绑定功能,下面介绍一下采用代码的数据绑定 1.用DataSet和DataTable为DataGridView提供数据源 先上代码 pri ...

  5. DevExpress winform XtraEditor常用控件

    最近在公司里面开始使用DevExpress winform的第三方控件进行开发和维护,这里整理一些常用控件的资料以便于后续查看 ComboBoxEdit 这个控件和winform自带的控件差不多,使用 ...

  6. WinForm开发-界面控件到实体,实体到界面控件自动绑定

    在WinForm开发中,我们是不是为绑定界面控件的数据而每个控件每个控件的赋值?在保存修改时是不是也是每个控件每个控件的赋值到实体中?字段一多,那简直就是噩梦.有没有像Web中那样方便的方法直接就自动 ...

  7. C# Winform开发以及控件开发的需要注意的,被人问怕了,都是基础常识

    我是搞控件开发的,经常被人问,所以把一些问题记录了下来!如果有人再问,直接把地址丢给他看. 一. 经常会有人抱怨Winform界面闪烁,下面有几个方法可以尽可能的避免出现闪烁 1.控件的使用尽量以纯色 ...

  8. c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

    一.单元格内容的操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index ...

  9. 转:c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

    一.单元格内容的操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index  ...

随机推荐

  1. 一、Mosquitto 介绍&安装

    一.Mosquitto 介绍 一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的 ...

  2. http webservice socket的区别

    1 数据传输方式1.1 socket传输的定义和其特点    所谓socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有udp和tcp两个协议. ...

  3. 牛客国庆集训派对Day3 Solution

    A    Knight 留坑. B    Tree 思路:两次树形DP,但是要考虑0没有逆元 可以用前缀后缀做 #include <bits/stdc++.h> using namespa ...

  4. python学习之【16】网络编程

    主题 客户端/服务器架构 套接字:通信终点 套接字地址 面向连接与无连接套接字 Python中的网络编程 SOCKET模块 套接字对象方法 TCP/IP客户端和服务器 UDP/IP客户端和服务器 So ...

  5. jmeter -xml日志格式中网络时间与服务器时间的区分

    在 LR 中是有一个“网页细分图”的,通过这个图,你可以比较容易的区分哪些请求的响应时间最长,如果响应时间过程,是消耗在server处理的时候,还是消耗在网络传输过程中——也就是所谓的 Server ...

  6. Vue学习笔记之Vue的模板字符串

    0x00 模板字符串 传统的JavaScript语言,输出模板通常是这样的写的. $('#result').append( 'There are <b>' + basket.count + ...

  7. STM32时钟树

    STM32的时钟系统 相较于51单片机,stm32的时钟系统可以说是非常复杂了,我们现在看下面的一张图: 上图说明了时钟的走向,是从左至右的从时钟源一步步的分配给外设时钟.需要注意的是,上图左侧一共有 ...

  8. How to install tensorflow on ubuntu 18.04 64bit

    Ans:pip install tensorflow (note:  version number of pip and python must be  consistent)

  9. HDU 5934 Bomb(tarjan/SCC缩点)题解

    思路:建一个有向图,指向能引爆对象,把强连通分量缩成一点,只要点燃图中入度为0的点即可.因为入度为0没人能引爆,不为0可以由别人引爆. 思路很简单,但是早上写的一直错,改了半天了,推倒重来才过了... ...

  10. git branch 误删 分支 找回

    今天在写东西的时候,把自己的dev分支给删掉了.并且手贱的是吧远程分支也删掉了. 但是好在我强大的git!!!,把他找回来是分分钟的事情. 一.查看一下提交记录 git log -g 会有一个列表.如 ...