服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

香港云服务器
服务器之家 - 编程语言 - C# - WinForm中comboBox控件数据绑定实现方法

WinForm中comboBox控件数据绑定实现方法

2022-01-06 13:04何问起 C#

这篇文章主要介绍了WinForm中comboBox控件数据绑定实现方法,结合实例形式分析了WinForm实现comboBox控件数据绑定的常用方法与相关操作技巧,需要的朋友可以参考下

本文实例讲述了WinForm中comboBox控件数据绑定实现方法。分享给大家供大家参考,具体如下:

下面介绍三种对comboBox绑定的方式,分别是泛型中IList和Dictionary,还有数据集DataTable

 一、IList

现在我们直接创建一个List集合,然后绑定

?
1
2
3
4
5
6
IList<string> list = new List<string>();
list.Add("111111");
list.Add("222222");
list.Add("333333");
list.Add("444444");
comboBox1.DataSource = list;

执行后,我们会发现绑定成功,但是 我们知道一般对于下拉框的绑定都会有一个值,一个显示的内容,这个时候我们可以创建一个类,把value和text都封装到这个类,作为list的类型

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Info
{
  public string Id { get; set; }
  public string Name { get; set; }
}
private void bindCbox()
{
  IList<Info> infoList = new List<Info>();
  Info info1 = new Info() { Id="1",Name="张三"};
  Info info2 = new Info() { Id="2",Name="李四"};
  Info info3 = new Info() { Id = "3",Name = "王五" };
  infoList.Add(info1);
  infoList.Add(info2);
  infoList.Add(info3);
  comboBox1.DataSource = infoList;
  comboBox1.ValueMember = "Id";
  comboBox1.DisplayMember = "Name";
}

这个时候我们就可以直接获得值和显示的内容了

二、Dictionary

这个有点特殊,不能直接绑定,需要借助类BindingSource才可以完成绑定

?
1
2
3
4
5
6
7
8
9
Dictionary<int, string> kvDictonary = new Dictionary<int, string>();
kvDictonary.Add(1, "11111");
kvDictonary.Add(2, "22222");
kvDictonary.Add(3, "333333");
BindingSource bs = new BindingSource();
bs.DataSource = kvDictonary;
comboBox1.DataSource = bs;
comboBox1.ValueMember = "Key";
comboBox1.DisplayMember = "Value";

三、数据集

这个比较常见,很简单

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//数据集绑定
private void BindCombox()
{
  DataTable dt = new DataTable();
  DataColumn dc1 = new DataColumn("id");
  DataColumn dc2 = new DataColumn("name");
  dt.Columns.Add(dc1);
  dt.Columns.Add(dc2);
  DataRow dr1 = dt.NewRow();
  dr1["id"] = "1";
  dr1["name"] = "aaaaaa";
  DataRow dr2 = dt.NewRow();
  dr2["id"] = "2";
  dr2["name"] = "bbbbbb";
  dt.Rows.Add(dr1);
  dt.Rows.Add(dr2);
  comboBox1.DataSource = dt;
  comboBox1.ValueMember = "id";
  comboBox1.DisplayMember = "name";
}

注意:

当我们触发combox的SelectedIndexChanged的事件后,我们在加载窗体的时候就会执行,这点我刚开始也和魅惑,导致容易出错,这点我们可以采取一些方法避免执行,比如可以定义一个变量fig=false

?
1
2
3
4
5
6
7
8
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
  if(this.fig)
  {
    string selectValue = this.cmbAddMember.SelectedValue.ToString();
    rtbaddMember.SelectedText = selectValue;
  }
}

那么肯定想在加载窗体后,执行了,所以在加载窗体后我们还要把fig的值设为true

?
1
2
3
4
5
6
private void SetAutoMessage_Load(object sender, EventArgs e)
{
  loadCombox();
  loadMessageTemplet();
  fig= true;
}

希望本文所述对大家C#程序设计有所帮助。

延伸 · 阅读

精彩推荐
  • C#C# 实现对PPT文档加密、解密及重置密码的操作方法

    C# 实现对PPT文档加密、解密及重置密码的操作方法

    这篇文章主要介绍了C# 实现对PPT文档加密、解密及重置密码的操作方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...

    E-iceblue5012022-02-12
  • C#深入解析C#中的交错数组与隐式类型的数组

    深入解析C#中的交错数组与隐式类型的数组

    这篇文章主要介绍了深入解析C#中的交错数组与隐式类型的数组,隐式类型的数组通常与匿名类型以及对象初始值设定项和集合初始值设定项一起使用,需要的...

    C#教程网6172021-11-09
  • C#C#实现XML文件读取

    C#实现XML文件读取

    这篇文章主要为大家详细介绍了C#实现XML文件读取的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Just_for_Myself6702022-02-22
  • C#C#设计模式之Visitor访问者模式解决长隆欢乐世界问题实例

    C#设计模式之Visitor访问者模式解决长隆欢乐世界问题实例

    这篇文章主要介绍了C#设计模式之Visitor访问者模式解决长隆欢乐世界问题,简单描述了访问者模式的定义并结合具体实例形式分析了C#使用访问者模式解决长...

    GhostRider9502022-01-21
  • C#C#裁剪,缩放,清晰度,水印处理操作示例

    C#裁剪,缩放,清晰度,水印处理操作示例

    这篇文章主要为大家详细介绍了C#裁剪,缩放,清晰度,水印处理操作示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    吴 剑8332021-12-08
  • C#Unity3D实现虚拟按钮控制人物移动效果

    Unity3D实现虚拟按钮控制人物移动效果

    这篇文章主要为大家详细介绍了Unity3D实现虚拟按钮控制人物移动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一...

    shenqingyu060520232410972022-03-11
  • C#WPF 自定义雷达图开发实例教程

    WPF 自定义雷达图开发实例教程

    这篇文章主要介绍了WPF 自定义雷达图开发实例教程,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下...

    WinterFish13112021-12-06
  • C#C#通过KD树进行距离最近点的查找

    C#通过KD树进行距离最近点的查找

    这篇文章主要为大家详细介绍了C#通过KD树进行距离最近点的查找,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    帆帆帆6112022-01-22
755