2010-03-27 207 views
6

如何更改ListView上的选择颜色?默认情况下,当用户选择一个项目时,它会显示蓝色背景。我想改变它为深灰色,或者其他... 感谢您的帮助!更改ListView的背景选择颜色?

+0

这是在WPF或WinForms? – Joel 2010-03-27 18:07:31

回答

1

ObjectListView - WinForm ListView的一个包装 - 具有可让您控制所选行的背景和前景颜色的属性。它使用Obalix建议的技术,但它已经为你做了很多努力。

所以,用一点点努力,你就可以生产这样的事情:

alt text

“利好公司”行显示选择一个自定义的前景和背景。

+2

'ObjectListView'不是ListView的替代品。现有代码的一些重构可能需要使用它。 – 2011-08-09 10:45:14

+0

我分析了这个项目。但我认为这太难学了。 – 2012-11-10 19:01:51

+0

这个答案正是你需要的:http://stackoverflow.com/a/5188225/1317040 – cnlevy 2014-05-04 13:48:58

2

对于WinForms,您必须将OwnerDraw属性设置为true,然后使用DrawItemDrawSubItem事件手动绘制项目。

See here为例。

7

如果你想你的ListView有Windows资源管理器ListView的风格(包括漂亮的外观,圆滑的边缘在Win7/Vista的),你可以使用一个小的P/Invoke来实现这一目标:

[DllImport("uxtheme.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] 
internal static extern int SetWindowTheme(IntPtr hWnd, string appName, string partList); 

// You can subclass ListView and override this method 
protected override void OnHandleCreated(EventArgs e) 
{ 
    base.OnHandleCreated(e); 
    SetWindowTheme(this.Handle, "explorer", null); 
} 
+0

也适用于TreeView! +1 – 2011-07-20 03:27:26