gpt4 book ai didi

.net - 如果单击复选框,则仅更改ListViewItem的“已检查”状态

转载 作者:行者123 更新时间:2023-12-03 14:31:27 25 4
gpt4 key购买 nike

默认情况下,双击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 <-------------禁止的区域
  • 单击
  • MouseClick
  • MouseUp ------------->
  • ItemCheck(禁止区域之外的)
  • ItemChecked

  • 双击时:
  • MouseDown <-------------禁止的区域
  • ItemSelectionChanged
  • SelectedIndexChanged
  • 单击
  • MouseClick
  • MouseUp ------------->
  • MouseDown <-------------禁止区域
  • ItemCheck(禁止区域内的)
  • ItemActivate
  • DoubleClick
  • MouseDoubleClick
  • MouseUp ------------->
  • 关于.net - 如果单击复选框,则仅更改ListViewItem的“已检查”状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406887/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com