这个话题似乎很早就有说了,
不过我也最近才经常接触的winform。记录之

我希望能够在CheckedListBox中实现如下的效果:
;
通过它,可以将CheckedListBox的复选框绑定到一个数据库的boolean型的字段上,效果如下

改进的CheckedListBox控件
下面是我改造的过程

首先查了一下msdn,
http://msdn2.microsoft.com/zh-cn/library/system.windows.forms.checkedlistbox_members(VS.80).aspx
会看到如下几个属性,
改进的CheckedListBox控件 DataSource 获取或设置控件的数据源。此属性与此类无关。
改进的CheckedListBox控件 DisplayMember 此属性与此类无关。
改进的CheckedListBox控件 ValueMember 获取或设置一个字符串,该字符串指定要从中取值的数据源的属性此属性与此类无关。
但是这三个属性是我们需要的,
使用Reflector查看了一CheckedListBox的关系改进的CheckedListBox控件
在CheckedListBox中本身已经实现了这三个属性,仅是ms使用了如下的特性,使我们不能用它了,[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
知道了来龙去脉就好改造了,在原CheckedListBox基础上再扩展一个类ExCheckedListBox
  1改进的CheckedListBox控件using System;
  2改进的CheckedListBox控件using System.Collections.Generic;
  3改进的CheckedListBox控件using System.Text;
  4改进的CheckedListBox控件using System.ComponentModel;
  5改进的CheckedListBox控件using System.Drawing;
  6改进的CheckedListBox控件using System.Windows.Forms;
  7改进的CheckedListBox控件using System.Drawing.Design;
  8改进的CheckedListBox控件
  9改进的CheckedListBox控件namespace CustomControls
 10
其中控件的主要代码,这位伊郞大哥的code,link如下:
http://www.codeproject.com/cs/combobox/ExCheckedListBox.asp

相关文章: