代码之家  ›  专栏  ›  技术社区  ›  Pratik Deoghare

如何通过单击选中复选框项目?

  •  65
  • Pratik Deoghare  · 技术社区  · 15 年前

    我正在给Windows编码 Forms CheckListBox 控制

    如何只需单击一下即可选中复选框项?

    4 回复  |  直到 15 年前
        1
  •  177
  •   rahul    15 年前

    我想你在找我

    CheckOnClick 所有物

    把它设为真

    是否应选中该复选框 选择项目时切换。

        2
  •  9
  •   daniele3004    6 年前

    以这种方式在设计时设置属性

    enter image description here

    CheckedListBox.CheckOnClick = true;
    
        3
  •  3
  •   LarsTech    6 年前

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

    this.Product_Group_CheckedListBox.CheckOnClick = true;
    

    在这之后,它按预期工作。不知道为什么设计师没有更新,但也许这个解决方案会帮助一些人。

        4
  •  1
  •   daniele3004    6 年前

    您也可以通过单击按钮或单击检查表来检查所有项目

    private void checkedListBox1_Click(object sender, EventArgs e)
    {
    
        for (int i = 0; i < checkedListBox1.Items.Count; i++)
            checkedListBox1.SetItemChecked(i, true);
    
    }
    
        5
  •  1
  •   tjmaher    5 年前

    您还可以使用复选框外部的复选框来选中/取消选中所有项目。在同一表单上,在CheckedListBox附近添加一个复选框,并将其命名为CkCheckAll。为复选框添加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;
        }