只有改变一个ListViewItem的检查状态,如果框击
-
05-07-2019 - |
题
默认情况下,双击ListViewItem切换其检查的状态。我只是想检查的状态可以改变通过点击一个项目的框或按空间条,而一个项目突出显示。是这个容易做到的?
解决方案
该解决方案涉及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事件)。该方案是简单的肯定。
找到它我做了一个小测试用不同的活动:
当击:
- MouseDown <------------- 抑制区域
- 点击
- 可
- MouseUp------------->
- ItemCheck(外面 抑制的地区)
- ItemChecked
当双击:
- MouseDown <------------- 抑制区域
- ItemSelectionChanged
- SelectedIndexChanged
- 点击
- 可
- MouseUp------------->
- MouseDown <------------- 抑制区域
- ItemCheck(内部 抑制的地区)
- ItemActivate
- 双击
- MouseDoubleClick
- MouseUp------------->
不隶属于 StackOverflow