【问题标题】:Prevent user from checking items of listView .NET防止用户检查 listView .NET 的项目
【发布时间】:2020-09-02 20:10:06
【问题描述】:

我使用listView 来显示一些测试步骤。在测试过程中,如果某个步骤通过了,我在listView 上打勾对应的Item 并将其ForeColor 更改为绿色,如果失败则将ForeColor 更改为红色。

listView 仅用于显示每个测试步骤的状态。

有什么方法可以阻止用户点击Items 并更改选中状态? 一种方法是禁用listView,但随后无法调整ForeColor...

【问题讨论】:

  • 只需使用 ListView.ItemCheck 事件,将 NewValue 属性设置为 CurrentValue 即可取消更改。加上您设置为 true 的表单中的 bool 字段,以知道是您的代码检查了该项目。
  • 谢谢,这是一个不错且干净的解决方案。

标签: c# .net winforms listview


【解决方案1】:

在@Hans Passant 的帮助下,下面的代码完全符合我的要求:

private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (allowCheck == false) //Set allowCheck to true, when your program needs to Check an item
    e.NewValue = e.CurrentValue;
}

此外,我添加了以下内容以取消单击项目时的突出显示:

private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
    e.Item.Selected = false;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 2020-05-14
    • 2019-06-20
    • 2019-07-20
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多