winforms 选中CheckedListBox中的项而不选择

pgky5nke  于 2022-11-17  发布在  其他
关注(0)|答案(3)|浏览(114)

如何让用户单击选中CheckedListBox中的某个项目?默认行为是第一次单击选择该项目,第二次单击允许您切换选中。我也不想切换选择时的选中,我正在寻找ListView控件的行为,在该控件中,我可以直接单击复选框来切换它们,而无需首先选择它们的项目。

gg0vcinb

gg0vcinb1#

CheckedListBox有一个属性CheckOnClick
CheckOnClick指示是否应在每次选择项时切换复选框。默认行为是在第一次单击时更改选择,然后让用户再次单击以应用复选标记。但是,在某些情况下,您可能希望在单击该项时立即选中该项。
读取:How do I CheckOnClick in a CheckedListbox but only when over the checkbox?

eqfvzcg8

eqfvzcg82#

我刚遇到这个问题,除了Tim提到的那个问题,在Google上没有找到太多。这听起来像是为这样一个基本需求做了很多工作,这对我来说是一个危险信号。所以我猜问题出在设计上。
在我的例子中,我非常简单地通过使用ListView而不是CheckedListBox来解决它(改变它的属性允许真正获得CheckedListBox的行为)。

sd2nnvve

sd2nnvve3#

按如下方式设置属性。

checkedListBox1.SelectionMode = SelectionMode.One;
checkedListBox1.CheckOnClick = true;

并在窗体类中创建事件。

private void checkedListBox1_MouseUp(object sender, MouseEventArgs e)
    {
        checkedListBox1.SelectedIndex = -1;
    }

相关问题