在C#中禁用ListView,但仍显示当前选择

时间:2008-08-17 23:59:39

标签: c# .net winforms listview

我有一个ListView控件,我正在尝试找出最简单/最好的方法来禁止更改所选行,而不隐藏所选行。

我知道有一个HideSelection属性,但只有在ListView仍然启用(但没有关注)时才有效。即使禁用ListView,我也需要可以查看选择。

我该如何实现?

3 个答案:

答案 0 :(得分:2)

您也可以使ListView ownerdraw。然后,您可以完全控制项目的外观,无论它们是否被选中,或者ListView本身是否已启用。 DrawListViewItemEventArgs提供了一种方法,要求ListView绘制项目的各个部分,这样您只需要绘制您感兴趣的位。例如,您可以绘制项目的背景,但将其留给ListView绘制文本。

答案 1 :(得分:1)

有两个选项,更改所选行禁用的颜色。或者更改所有其他行以模拟它们被禁用,但所选行除外。第一种选择显然是最简单的,第二种选择显然需要一些额外的保护。

我之前已经完成了第一个选项并且它运行得很好。您只需记住将颜色更改回默认值,以防稍后在此过程中选择另一行。

答案 2 :(得分:0)

实施SelectedIndexChanged并执行此操作

    private void listViewABC_SelectedIndexChanged(object sender, EventArgs e)
    {
        listViewABC.SelectedItems.Clear();
    }