默认情况下,双击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事件)。该方案是简单的肯定。

找到它我做了一个小测试用不同的活动:

当击:

  1. MouseDown <------------- 抑制区域
  2. 点击
  3. MouseUp------------->
  4. ItemCheck(外面 抑制的地区)
  5. ItemChecked

当双击:

  1. MouseDown <------------- 抑制区域
  2. ItemSelectionChanged
  3. SelectedIndexChanged
  4. 点击
  5. MouseUp------------->
  6. MouseDown <------------- 抑制区域
  7. ItemCheck(内部 抑制的地区)
  8. ItemActivate
  9. 双击
  10. MouseDoubleClick
  11. MouseUp------------->
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top