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;
}
相关推荐
ss27320 分钟前
基于Springboot + vue3实现的图书管理系统
java·spring boot·后端
.生产的驴26 分钟前
SpringBoot 执行Lua脚本 服务端执行 减少性能损耗 优化性能 优化连接性能
java·数据库·spring boot·后端·junit·maven·lua
在未来等你26 分钟前
互联网大厂Java求职面试:AI与云原生架构实战解析
java·spring boot·低代码·ai·云原生·面试·架构设计
unicrom_深圳市由你创科技26 分钟前
C#与 Prism 框架:构建模块化的 WPF 应用程序
开发语言·c#·wpf
_extraordinary_29 分钟前
Java 内部类
java·开发语言
忆雾屿44 分钟前
Java 并发编程通关秘籍:多线程基础 + 锁机制 + 工具类 + 性能优化
java·后端·多线程·并发
钢铁男儿1 小时前
C#核心概念解析:析构函数、readonly与this关键字
开发语言·javascript·c#
lingdian231 小时前
限流系列:guava rateLimiter
java·guava·ratelimiter
琢磨先生David1 小时前
Java 迭代器模式:遍历数据集合的优雅之道
java·设计模式·迭代器模式
一刀到底2112 小时前
java 开发中 nps的内网穿透 再git 远程访问 以及第三放支付接口本地调试中的作用
java·开发语言·git