问题描述
我在我的 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 控件的内部检查状态,并防止它们在视图刷新时(将鼠标悬停在项目上时)在视觉上未选中。