当前位置:  开发笔记 > 编程语言 > 正文

如何以编程方式检查C#中CheckedListBox中的项?

如何解决《如何以编程方式检查C#中CheckedListBox中的项?》经验,为你挑选了3个好方法。

我有一个CheckedListBox,我想自动勾选其中的一个项目.

CheckedItems集合不允许您向其添加内容.

有什么建议?



1> Jon Skeet..:

您需要SetItemChecked使用相关项目进行呼叫.

该文档CheckedListBox.ObjectCollection有一个示例,用于检查集合中的每个其他项目.



2> B. Clay Shan..:

这是您一次选择/勾选或取消选择/取消选中所有项目的方法:

private void SelectAllCheckBoxes(bool CheckThem) {
    for (int i = 0; i <= (checkedListBox1.Items.Count - 1); i++) {
        if (CheckThem)
        {
            checkedListBox1.SetItemCheckState(i, CheckState.Checked);
        }
        else
        {
            checkedListBox1.SetItemCheckState(i, CheckState.Unchecked);
        }
    }  
}


你不需要if/else条件,在for循环中你可以像下面这样做:checkedListBox1.SetItemChecked(i,CheckThem);

3> 小智..:

在我的程序中,我使用了以下技巧:

CheckedListBox.SetItemChecked(CheckedListBox.Items.IndexOf(Item),true);

事情是如何工作的:
SetItemChecked(int index,bool value)是在特定项目中设置精确检查状态的方法.您必须指定要检查的项目的索引(使用IndexOf方法,作为参数指定项目的文本)和选中状态(true表示项目已选中,false未选中).
此方法遍历CheckedListBox中的所有项,并检查(或取消选中)具有指定索引的项.
例如,我的一小段代码 - FOREACH循环运行指定的程序名称,如果程序包含在CheckedLitBox(CLB ...)中,则检查它:

string[] ProgramNames = sel_item.SubItems[2].Text.Split(';');
foreach (string Program in ProgramNames)
{
    if (edit_mux.CLB_ContainedPrograms.Items.Contains(Program))
        edit_mux.CLB_ContainedPrograms.SetItemChecked(edit_mux.CLB_ContainedPrograms.Items.IndexOf(Program), true);
}


)和选中状态(
).
)具有指定索引的项.
)中,则检查它:
推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有