1. 简介
类似 ListBox,提供项的列表,区别就是 CheckedListBox 每一个项前面有个复选框
2. 常用属性
属性 | 解释 |
---|---|
(Name) | 控件ID,在代码里引用的时候会用到,一般以 ckl 开头 |
BackColor | 背景颜色 |
BoderStyle | 边框样式:无、FixedSingle、Fixed3D |
MultiColumn | 是否允许多列显示,默认是false |
ColumnWidth | 多列ListBox中各列的宽度,默认值是0,不是以多列显示的 |
Dock | CheckedListBox在当前容器中的位置是靠上、靠下、靠左、靠右、还是全填充 |
ForeColor | 前景色,显示文本 |
Items | 项的集合,和listBox, ComboBox类似 |
ScrollAlwaysVisible | 是否始终显示滚动条,而不管列表框中有多少项 |
SelectionMode | 项的选择模式,是单项选择、简单多项选择、扩展多项选择,还是不可选择。和listBox类似。SelectionMode.MultiExtended 表示允许选择多项,但选中的条目必定相连(相邻),鼠标当选中一项后,按 键盘↑↓可以选定一个范围的选项,但选项不能间隔选中。SelectionMode.MultiSimple 表示允许选择多项,可以任意选中多个条目,点一下可以选中一条项目,重复点一下即取消。 |
SelectedItems | |
CheckedItems | 表示勾选的项的集合; |
CheckedIndices | 表示勾选的多项的索引值集合; |
CheckOnClick | 指示复选框是否应在首次单击某项时切换。选中和勾选是不一样的。选中了不一定勾选,勾选了也不一定选中,勾选是指勾选前面的复选框。当该属性值设置为true时,选中某一项时 就会 勾选/取消勾选 该项。 |
Sorted | 是否对列表进行排序 |
ThreeDCheckBoxes | 复选框的ButtonState是Flat还是Normal |
DataSource | 指示此控件将用来获取其项的列表,它的数据通常是一个DataTable, 或者是一个List,dictionary,通常通过一个中间绑定控件BoundingSource进行数据转换,如果指定数据源的话,要设置DisplayMember属性值和ValueMember属性值。 虽然在属性面板中找不到这个选项,但这个属性也是存在的。 |
DisplayMember | 列表项中显示的文本信息 |
ValueMember | 项的实际值 |
3. Items方法 和 绑定数据源
和listBox类似
cklList.Items.Clear();
cklList.Items.Add(1);
cklList.Items.Add("aaa");
cklList.Items.AddRange(new string[] {"aaa", "bbb", "ccc"});
cklList.Items.Insert(2, "ddd");
cklList.Items.Remove("ddd");
cklList.Items.RemoveAt(2); // 移除第3项
指定数据源方式添加项,也和ListBox类似(C# WinForm —— 12 ListBox绑定数据):
4. 事件
常用事件 | 解释 |
---|---|
SelectedIndexChanged | 所选中的项的索引值发生改变时,所做的操作。 |
SelectedValueChanged | 所选中的项的值发生改变时,所做的操作。 |
ItemCheck | 某项的选中状态要更改时触发的事件 |
参考:2023年C#之WinForm零基础教程50讲