如何让用户单击选中CheckedListBox中的某个项目?默认行为是第一次单击选择该项目,第二次单击允许您切换选中。我也不想切换选择时的选中,我正在寻找ListView控件的行为,在该控件中,我可以直接单击复选框来切换它们,而无需首先选择它们的项目。
CheckedListBox
ListView
gg0vcinb1#
CheckedListBox有一个属性CheckOnClick。CheckOnClick指示是否应在每次选择项时切换复选框。默认行为是在第一次单击时更改选择,然后让用户再次单击以应用复选标记。但是,在某些情况下,您可能希望在单击该项时立即选中该项。读取:How do I CheckOnClick in a CheckedListbox but only when over the checkbox?
CheckOnClick
eqfvzcg82#
我刚遇到这个问题,除了Tim提到的那个问题,在Google上没有找到太多。这听起来像是为这样一个基本需求做了很多工作,这对我来说是一个危险信号。所以我猜问题出在设计上。在我的例子中,我非常简单地通过使用ListView而不是CheckedListBox来解决它(改变它的属性允许真正获得CheckedListBox的行为)。
sd2nnvve3#
按如下方式设置属性。
checkedListBox1.SelectionMode = SelectionMode.One; checkedListBox1.CheckOnClick = true;
并在窗体类中创建事件。
private void checkedListBox1_MouseUp(object sender, MouseEventArgs e) { checkedListBox1.SelectedIndex = -1; }
3条答案
按热度按时间gg0vcinb1#
CheckedListBox
有一个属性CheckOnClick
。CheckOnClick
指示是否应在每次选择项时切换复选框。默认行为是在第一次单击时更改选择,然后让用户再次单击以应用复选标记。但是,在某些情况下,您可能希望在单击该项时立即选中该项。读取:How do I CheckOnClick in a CheckedListbox but only when over the checkbox?
eqfvzcg82#
我刚遇到这个问题,除了Tim提到的那个问题,在Google上没有找到太多。这听起来像是为这样一个基本需求做了很多工作,这对我来说是一个危险信号。所以我猜问题出在设计上。
在我的例子中,我非常简单地通过使用
ListView
而不是CheckedListBox
来解决它(改变它的属性允许真正获得CheckedListBox
的行为)。sd2nnvve3#
按如下方式设置属性。
并在窗体类中创建事件。