C# WinForm —— 14 CheckedListBox 复选列表框介绍

1. 简介

类似 ListBox,提供项的列表,区别就是 CheckedListBox 每一个项前面有个复选框
在这里插入图片描述

2. 常用属性

属性解释
(Name)控件ID,在代码里引用的时候会用到,一般以 ckl 开头
BackColor背景颜色
BoderStyle边框样式:无、FixedSingle、Fixed3D
MultiColumn是否允许多列显示,默认是false
ColumnWidth多列ListBox中各列的宽度,默认值是0,不是以多列显示的
DockCheckedListBox在当前容器中的位置是靠上、靠下、靠左、靠右、还是全填充
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讲

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要给 WinForm 的文件树(TreeView)控件添加复选框,可以按照以下步骤进行操作: 1. 打开 Visual Studio 的 WinForm 设计器,在窗口上添加一个 TreeView 控件。 2. 在 TreeView 控件的属性窗口中,将 ShowCheckBoxes 属性设置为 true。 3. 编写代码来加载树节点以及设置复选框的初始状态。例如: ``` TreeNode rootNode = new TreeNode("根节点"); TreeNode childNode1 = new TreeNode("子节点1"); TreeNode childNode2 = new TreeNode("子节点2"); rootNode.Nodes.Add(childNode1); rootNode.Nodes.Add(childNode2); childNode1.Checked = true; childNode2.Checked = false; treeView1.Nodes.Add(rootNode); ``` 在这个例子中,我们创建了一个根节点和两个子节点,并设置了子节点的复选框状态。 4. 在代码中添加事件处理程序来处理节点复选框的更改。例如: ``` private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { // 设置所有子节点的复选框状态 foreach (TreeNode childNode in e.Node.Nodes) { childNode.Checked = e.Node.Checked; } // 设置所有父节点的复选框状态 TreeNode parentNode = e.Node.Parent; while (parentNode != null) { bool allChecked = true; bool allUnchecked = true; foreach (TreeNode siblingNode in parentNode.Nodes) { if (siblingNode.Checked) { allUnchecked = false; } else { allChecked = false; } } if (allChecked) { parentNode.Checked = true; } else if (allUnchecked) { parentNode.Checked = false; } else { parentNode.Checked = false; break; } parentNode = parentNode.Parent; } } ``` 在这个例子中,我们处理了 TreeView 的 AfterCheck 事件,并在事件处理程序中更新了节点的复选框状态。具体来说,我们设置了所有子节点的复选框状态,然后递归设置所有父节点的复选框状态,以确保它们正确地反映了其子节点的状态。 通过以上步骤,你可以给 WinForm 的文件树添加复选框,并实现复选框的联动效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值