更改ListView的背景选择颜色?

时间:2010-03-27 18:05:35

标签: c# winforms listview colors selection

如何更改ListView上的选择颜色?默认情况下,当用户选择项目时,它显示蓝色背景。我想把它变成深灰色或者什么...... 谢谢你的帮助!

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:2)

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

See here举个例子。

答案 2 :(得分:1)

ObjectListView - WinForm ListView的包装器 - 具有允许您控制所选行的背景和前景色的属性。它使用了Obalix建议的技术,但它已经为你完成了艰苦的工作。

所以,只要付出一点努力,你就可以产生这样的东西:

alt text

“Feel Good Inc”行显示自定义前景和背景供选择。