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;
}
相关推荐
地平线开发者2 小时前
J6B vio scenario sample
算法
Flittly10 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了10 小时前
Java 生成二维码解决方案
java·后端
BothSavage14 小时前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法
小林ixn14 小时前
从暴力到KMP:一道题彻底搞懂字符串匹配的前世今生
算法
人活一口气14 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
烬羽16 小时前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
NE_STOP16 小时前
Vibe Coding -- 完整项目案例实操
java
荣码16 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python