默认情况下,双击ListViewItem可切换其Checked状态。我只想通过单击项目的复选框或在项目突出显示时按空格键来更改已检查状态。这很容易吗?
答案 0 :(得分:14)
该解决方案涉及3个事件和一个bool类型的状态变量:
private bool inhibitAutoCheck;
private void listView1_MouseDown(object sender, MouseEventArgs e) {
inhibitAutoCheck = true;
}
private void listView1_MouseUp(object sender, MouseEventArgs e) {
inhibitAutoCheck = false;
}
private void listView1_ItemCheck(object sender, ItemCheckEventArgs e) {
if (inhibitAutoCheck)
e.NewValue = e.CurrentValue;
}
项目检查可以避免转换到另一个检查状态(在ItemChecked事件之前调用)。解决方案简单明了。
为了找到它我用不同的事件做了一个小测试:
点击:
双击时: