C#实现的多列数据绑定组合框控件MultiColumnComboBoxEx

本文介绍了C#实现的MultiColumnComboBoxEx控件,该控件解决了标准ComboBox的不足,支持多列显示、指定列与顺序、分离框高与项高,并提供了查找功能。文章详细阐述了控件的技术要点,包括下拉框高度和宽度计算以及在文本框中显示多列信息的实现方法。
摘要由CSDN通过智能技术生成

(原创文章,转载请注明来源:http://blog.csdn.net/hulihui)

0、前言

组合框ComboBox是一个十分常用的多功能窗体控件,兼具文本框(TextBox)与列表框(ListBox)两控件的特点,并独具特性AutoCompleteMode。但笔者在实际项目开发中往往感到如下方面的不足:

  1. 不能分别设置框高与项高,在调整项高ItemHeigth时也调整了组合框本身的高度;
  2. 绑定数据源时,只有DisplayMember与ValueMember两个属性,不能呈现多列信息。

在著名开源网CodeProject上找了年份较新的两篇文章:A data-bound multi-column combobox(Nishant Sivakumar, 2007.7)介绍的数据源绑定控件MultiColumnComboBox基本满足要求,但不能独立设置框高和项高;Searchable MultiColumn ComboBox with Linked TextBox(Darryl Caillouet,2008.2) 介绍的同名控件功能强大,也没有分开框高与项高,且不能指定多列的呈现顺序。于是,借鉴这两个开源倥件的主要技术与思路,在增补与完善部分功能后编写出MultiColumnComboBoxEx控件,主要功能如下:

  • 多数据列显示:可以在下拉框和文本框中显示多列信息;
  • 指定列与顺序:可以指定需要显示的数据源列名,同时指定输出顺序;
  • 框高项高分离:可以分别设定文本框本身高度与下拉框的项高度;
  • 查找函数ItemIndexOf:提供了代替Items.Index的数据项查找函数ItemIndexOf;
  • RTL语言风格:支持一些国家或民族的RightToLeft(RTL)语言风格。

此外,还增补与完善了一些实现细节,例如:是否显示分隔线、是否在框中显示多列、下拉框文本垂直居中、获取全部显示列文本框、DropDownWidth/DropDownHeight计算、RTL时增加左边宽度,等等。

1、MultiColumnComboBoxEx介绍

该控件派生自ComboBox,下面介绍其增加与重载(new)的一些属性、功能和及使用:

  • ComboBo
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值