如何单击检查CheckListBox项目?


78

我正在Forms用C#编写Windows应用程序并使用CheckListBox控件。

如何单击一下即可检查CheckListBox项目?

Answers:


174

我想你在找

CheckOnClick属性

将其设置为true

获取或设置一个值,该值指示在选择一个项目时是否应切换复选框。


2
您可以在checkedlistbox控件的属性窗口中找到它。
胡尔

8

通过这种方式在设计时设置属性

在此处输入图片说明

或通过代码:

CheckedListBox.CheckOnClick = true;

3

我刚刚完成了一个问题,其中我已经通过设计器将CheckOnClick设置为True,但是UI仍然需要再次单击才能检查项目。我发现无论出于什么原因,更改值时设计器文件都没有更新。为了解决这个问题,我进入了设计器文件并添加了一行

this.Product_Group_CheckedListBox.CheckOnClick = true;

此后,它按预期工作。不知道为什么设计师没有更新,但是也许这种解决方法会有所帮助。


1

您也可以通过单击按钮或单击清单来检查全部

private void checkedListBox1_Click(object sender, EventArgs e)
{

    for (int i = 0; i < checkedListBox1.Items.Count; i++)
        checkedListBox1.SetItemChecked(i, true);

}

如何使用foreach语句执行此操作?
布赖恩

@Bryan尝试此操作,循环主体将对象投射到每个对象的检查列表中(checkedListBox1.CheckedItems中的对象项)
Adiii

应避免在循环中使用count命令。作为命令状态的名称。计数使用时间对循环的每次迭代中的列表中的项目进行计数。如果列表仅支持计数,则使用:int totalitems = CheckedListBox1.Count; 然后在for循环中使用变量。
nivs1978 '17

1

您还可以使用CheckListBox外部的复选框来选中/取消选中所有项目。在同一窗体上,在CheckedListBox附近添加一个复选框,并将其命名为CkCheckAll。为CheckBox添加Click事件(我更喜欢CheckChanged事件)。CheckedListBox旁边还有一个按钮(BtnAdd),它将所有选中的项目添加到数据库表中。当CheckedListBox至少一个项目被选中它时才会启用。

    private void CkCheckAll_Click(object sender, EventArgs e)
    {
        CkCheckAll.Text = (CkCheckAll.Checked ? "Uncheck All" : "Check All");
        int num = Cklst_List.Items.Count;
        if (num > 0)
        { 
            for (int i = 0; i < num; i++)
            {
                Cklst_List.SetItemChecked(i, CkCheckAll.Checked);
            }
        }
        BtnAdd_Delete.Enabled = (Cklst_List.CheckedItems.Count > 0) ? true : false;
    }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.