C#高级:Winform桌面开发中CheckedListBox的详解

一、基础设置

单击触发选择效果:需要选择下面这个为True

二、代码实现

1.设置数据源

cs 复制代码
/// <summary>
/// 为CheckBoxList设置数据源
/// </summary>
/// <param name="checkedListBox1"></param>
/// <param name="data"></param>
private void SetCheckListSource(CheckedListBox checkedListBox1, List<string> data)
{
    foreach (var item in data)
    {
        checkedListBox1.Items.Add(item);
    }
}

2.设置全选和取消全选

cs 复制代码
/// <summary>
/// 全选和取消全选(True=全选)
/// </summary>
private void SetCheckListAllStatus(CheckedListBox checkedListBox1, bool v)
{
    for (int i = 0; i < checkedListBox1.Items.Count; i++)
    {
        checkedListBox1.SetItemChecked(i, checkBox1.Checked);
    }
}

3.获取选中项目和非选中项目

cs 复制代码
/// <summary>
/// 获取CheckedListBox数据(True=获取选中的项目,False=获取未选中的项目)
/// </summary>
private List<string> GetCheckedListBoxData(CheckedListBox checkedListBox1, bool isSelect=true)
{
    List<string> result = new List<string>();

    for (int i = 0; i < checkedListBox1.Items.Count; i++)
    {
        bool isChecked = checkedListBox1.GetItemChecked(i);

        // 根据 isSelect 的值来决定是获取选中的项目还是未选中的项目
        if (isSelect)
        {
            if (isChecked)
                result.Add(checkedListBox1.Items[i].ToString());
        }
        else
        {
            if (!isChecked)
                result.Add(checkedListBox1.Items[i].ToString());
        }
    }
    return result;
}
相关推荐
麦兜*几秒前
多阶段构建:打造最小化的 Spring Boot Docker 镜像
java·spring boot·后端·spring cloud·docker
唯道行8 分钟前
计算机图形学·6 OpenGL编程3 谢尔宾斯基垫与三维编程
人工智能·算法·计算机视觉·计算机图形学·三维·谢尔宾斯基垫
oak隔壁找我9 分钟前
Spring Boot Starter 入门教程
java·后端
YoungP10 分钟前
【Effective Java 条目一】-- 用静态工厂方法替代构造器
java
高山上有一只小老虎10 分钟前
求最大连续bit数
java·算法
vxiam14xxx14 分钟前
【Java Swing 项目】java 聊天系统
java·开发语言·python
Dylan的码园21 分钟前
以二叉树问题为基础的递归调试学习(上)
java·学习·算法·leetcode·r-tree
少许极端25 分钟前
算法奇妙屋(九)-栈
java·数据结构·算法·
shepherd11128 分钟前
破局延时任务(下):Spring Boot + DelayQueue 优雅实现分布式延时队列(实战篇)
java·spring boot·后端
听风吟丶37 分钟前
深入解析 Spring Boot 自动配置:原理、实践与进阶
java·数据库·sql