如何检查objectlistview c#中的所有项目?

问题描述

我在我的 WFA 中使用 Objectlistview 创建一个 chekedlistBox。 我想要一个名为“全选”的按钮,用户可以单击它,只需单击一下即可选择所有行。 我一直在使用以下有效的代码,所有复选框都将被选中

 private void btnSelectallModule_Click(object sender,EventArgs e)
    {
        
        foreach (ListViewItem item in dataListView1.Items)
        {
            item.Checked = true;
        }

    }

问题是,当我使用此按钮检查所有项目时,我将鼠标悬停在每个项目上,它会自动取消选中,甚至无需单击该项目,这太奇怪了,因为我不打算在代码中这样做。 有谁知道发生了什么,我该如何解决这个问题? 谢谢

解决方法

通常在使用 ObjectListView 时 do NOT manipulate the ListViewItem objects

有一个方法 dataListView1.CheckAll() 可以完全按照您的要求执行 - 检查所有项目。使用该方法将正确设置 OLV 控件的内部检查状态,并防止它们在视图刷新时(将鼠标悬停在项目上时)在视觉上未选中。