防止用户检查 listView .NET 的项目

Posted

技术标签:

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

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

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

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

【问题讨论】:

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

【讨论】:

以上是关于防止用户检查 listView .NET 的项目的主要内容,如果未能解决你的问题,请参考以下文章

在 WPF ListView 中,如何防止自动滚动?

在 VB .NET 2008 Winform Listview 中禁用复选框选择

如何检查 ListView 项目是不是被选中

禁用listView android中复选框的更改

在android中过滤ListView时检查了错误的项目

ListView(适配器)项目可见性监听器