我有一个ListView控件,我正在尝试找出最简单/最好的方法来禁止更改所选行,而不隐藏所选行。
我知道有一个HideSelection
属性,但只有在ListView
仍然启用(但没有关注)时才有效。即使禁用ListView,我也需要可以查看选择。
我该如何实现?
答案 0 :(得分:2)
您也可以使ListView ownerdraw。然后,您可以完全控制项目的外观,无论它们是否被选中,或者ListView本身是否已启用。 DrawListViewItemEventArgs提供了一种方法,要求ListView绘制项目的各个部分,这样您只需要绘制您感兴趣的位。例如,您可以绘制项目的背景,但将其留给ListView绘制文本。
答案 1 :(得分:1)
有两个选项,更改所选行禁用的颜色。或者更改所有其他行以模拟它们被禁用,但所选行除外。第一种选择显然是最简单的,第二种选择显然需要一些额外的保护。
我之前已经完成了第一个选项并且它运行得很好。您只需记住将颜色更改回默认值,以防稍后在此过程中选择另一行。
答案 2 :(得分:0)
实施SelectedIndexChanged并执行此操作
private void listViewABC_SelectedIndexChanged(object sender, EventArgs e)
{
listViewABC.SelectedItems.Clear();
}