控件之combox

控件之combox一 combox 显示 nbsp nbsp 首先 combox 有两个属性来存储数据 DisplayMembe 显示成员 ValueMember 值成员 DisplayMembe 是我们在 combox 界面上看到的 ValueMember 是隐藏的数据 一般来说我们只需要设置 DisplayMembe 属性的值即可 循环赋值 通过 combox Items Add 方法绑定数据 给 combox Da

一. combox显示

    首先combox有两个属性来存储数据:DisplayMember(显示成员),ValueMember(值成员) ,DisplayMember是我们在combox界面上看到的,ValueMember是隐藏的数据。一般来说我们只需要设置DisplayMember属性的值即可。
  1. 循环赋值 ,通过combox.Items.Add方法
  2. 绑定数据,给combox.DataSource绑定数据源
两者的区别在于:
循环赋值代码没有绑定数据代码简练;
循环赋值方法combox默认没有选择值即 selectedIndex=-1,而绑定数据方式则默认是第一个数据。



注意:combox.DataSource数据源不一定,只要是集合数据即可(该集合类型必须继承自IList或IListSource)

二. 取数据

1. SelectedValue,SelectedItem,SelectedText,Text区别
combox取得值类型很多,基本有以上几种,这里讲下他们的区别,及用法
SelectedValue:选中的数据值;即ValueMember属性中存储的值。
SelectedItem:combox当前选中项的值;(如果设置了displayMember,与valueMember的值,则会显示着两个的集合)
SelectedText:鼠标选中的combox中显示值
Text:当前combox的值;可用来取combox的值。


注意:前三个值都是当combox选中某个值才有效,如果combox没有选中任何一个值,但是在程序中取得这些值为null,使用会报异常错误。(未实例化)而Text则是为空(“”)。


三.实例

1. UI:
控件之combox


2. 说明
groupbox1:给combox赋值。分别采用循环,绑定数据库获取值赋给DataTable,绑定Dictionary值类型
groupbox2:取combox值,这里选用的第三个combox DT绑定。分别查看combox各个属性的值
注意:这里只写取这些属性值,是为了区分他们的不同


3. 代码:
using MySql.Data.MySqlClient; private void Form1_Load(object sender, EventArgs e) { //循环绑定 SetCmbWithCycle(); //绑定数据库 SetCmbWithBindingDB(); //绑定dictionary SetCmbWithDT(); } ///  /// 动态获取值 ///  ///  ///  private void timer1_Tick(object sender, EventArgs e) { if (cmbDT.SelectedIndex < 0) { lblError.Text = "combox没有选择值!"; return; } //获取combox值 GetComboxData(); } ///  /// 通过循环来赋值 ///  private void SetCmbWithCycle() { DataTable dt = GetDbData(); for (int i = 0; i < dt.Rows.Count; i++) { cmbItem.Items.Add(dt.Rows[i]["Name"]); } } ///  /// 通过绑定方式来赋值 ///  private void SetCmbWithBindingDB() { DataTable dt = GetDbData(); cmbBind.DataSource = dt; cmbBind.DisplayMember = "Name"; } ///  /// 通过dictiona绑定 ///  private void SetCmbWithDT() { Dictionary dt = new Dictionary (); dt.Add(1, "A"); dt.Add(2, "B"); BindingSource bs = new BindingSource(); bs.DataSource = dt; //Dictionary类型数据不可直接绑定到控件上 cmbDT.DataSource = bs; cmbDT.ValueMember = "Key"; cmbDT.DisplayMember = "Value"; } ///  /// 获取combox的属性值 ///  private void GetComboxData() { lblSelVal.Text = cmbDT.SelectedValue.ToString(); lblSelItem.Text = cmbDT.SelectedItem.ToString(); lblSelTxt.Text = cmbDT.SelectedText; lblTxt.Text = cmbDT.Text; } ///  /// 数据库中获取数据 ///  /// private DataTable GetDbData() { string connStr = @"Server=localhost;Database=stu;Uid=root;Pwd="; MySqlConnection conn = new MySqlConnection(connStr); string sql = @"Select *from user"; if (conn.State == ConnectionState.Open) { conn.Close(); } conn.Open(); MySqlCommand cmb = new MySqlCommand(sql, conn); MySqlDataAdapter da = new MySqlDataAdapter(cmb); DataTable dt = new DataTable(); da.Fill(dt); conn.Close(); return dt; } 





版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205512.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午5:51
下一篇 2026年3月19日 下午5:51


相关推荐

  • Unity3D中Isometric Tilemap功能实践「建议收藏」

    Unity3D中Isometric Tilemap功能实践「建议收藏」前言最近出于兴趣想自己做一个2D的游戏,因为有着C的基础,所以决定使用Unity3D来做。之前对于Unity3D其实了解不多,不过看了一些Unity3D的视频和官方文档后,暂时做起来也没遇到什么

    2022年8月6日
    6
  • “大模型六小虎”首个IPO,来了

    “大模型六小虎”首个IPO,来了

    2026年3月12日
    2
  • [高通MSM8953_64][Android10]移除开机进入充电界面

    [高通MSM8953_64][Android10]移除开机进入充电界面文章目录开发平台基本信息问题描述解决方法开发平台基本信息芯片:MSM8953_64版本:Android10kernel:msm-4.9问题描述在移植开发Android10的时候,一开始是用debug版本编译调试的,一直都很正常,然后,准备提交测试的时候,编译user版本却无法正常进入系统,一直在开机logo跟充电界面循环跳转。这是因为设备进入了关机充电模式导致的,在lk阶段,将充电界面屏蔽,即可正常进入系统。解决方法diff–gita/bootable/bootloader

    2022年10月20日
    3
  • js 全局变量优点和缺点

    js 全局变量优点和缺点全局变量的优点:可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。全局变量的缺点:(1)全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元。(2)全局变量破坏了函数的封装性能。函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现相对独立

    2022年6月9日
    67
  • JS数组遍历的6种方法

    JS数组遍历的6种方法1 for 遍历数组 1 1for 的普通遍历 varname Peter Stark Jack for 循环 for vari 0 i

    2026年3月26日
    2
  • iconfont的使用方法

    iconfont的使用方法一、iconfont的使用登录http://www.iconfont.cn/阿里巴巴矢量图标库,github或微博登录 选择喜欢的图标添加入库 然后点击右侧购物车,点击最下面的‘下载代码’按钮,下载保存到本地,解压即可得到需要的文件 有三种方法使用(1)unicode引用unicode是字体在网页端最原始的应用方式,特点是:兼容性最好,支持ie6+,及所有现代浏览器。 支持…

    2025年7月16日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号