我有一个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但是这意味着我需要循环浏览列表视图中的所有项目?
答案 0 :(得分:-1)
据我所知,您想要更改项目选择上的ListViewIten背景画笔颜色。如果是这样,那么我建议你使用触发器。