如何解决单击CheckedListBox中的项目会影响上次单击的项目
我有一个CheckedListBox
,其中包含3个项目。我先单击并选中它,然后从项目中单击,但我发现单击会影响项目。
有一个视频
如何解决?我想仅在单击项目时才单击,而在未单击时不希望。
编辑(@Kieran Devlin专用)
for (int i = 0; i < 3; ++i)
{
string str = "Item " + i;
checkedListBox1.Items.Add(str);
}
PS 没有要添加的内容,这是一个非常明显的问题,我不知道如何制作出最小的可复制示例。很简单,我有一个包含3个项目的复选框(上面),然后单击项目复选框,然后更改了他的状态,然后又单击了该项目,然后又更改了状态(这是一个问题),用户不希望他单击该项目,就会以某种方式影响该项目。我不明白在这里复制什么,对不起...
解决方法
我认为您必须向下压鼠标:
public class CheckedListBoxEx : CheckedListBox
{
private const int WM_LBUTTONDOWN = 0x201;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_LBUTTONDOWN)
{
Point pt = new Point(m.LParam.ToInt32());
if (this.IndexFromPoint(pt) == -1)
{
return;
}
}
base.WndProc(ref m);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。