如何有效地重置ListView中

时间:2015-10-15 08:38:31

标签: listview c#-4.0

我有一个ListView项目,我已设置MultipleSelect = false。

当用户点击列表中的项目时,我会更改背景颜色。

但问题是,如果用户选择其他项目,如何重置以前所选项目的颜色?

我知道我可以跟踪所选索引,当用户再次点击时,在设置和更新新项目之前更改上一项的颜色。但肯定必须有我可以调用的ResetColours / ResetStyles方法来完成这项工作吗?

指针非常感谢。

编辑:

我最终实现了简单的解决方法(如上所述):

以下代码段:

                if (myListView.SelectedIndices.Count > 0)
                {
                    if (previouslySelectedItemIndex != -1)
                    {
                        // Clear what was selected before...
                        myListView.Items[previouslySelectedItemIndex].BackColor = Color.White;
                    }

                    selectedIndex = myListView.SelectedIndices[0];
                    myListView.Items[selectedIndex].BackColor = Color.LightSteelBlue;
                    previouslySelectedItemIndex = selectedIndex; // And make a note of what has been selected.
                }

当然,通过BeginUpdate()和EndUpdate()关闭屏幕更新...但是有更好的方法吗?

编辑:

article explained why certain properties weren't available
  - 因为我设置了MultipleSelect = false。

this didn't answer the question it posed

我问了我的问题,因为microsoft article mentions the ResetStyles method但是这意味着我需要循环浏览列表视图中的所有项目?

1 个答案:

答案 0 :(得分:-1)

据我所知,您想要更改项目选择上的ListViewIten背景画笔颜色。如果是这样,那么我建议你使用触发器。