winforms 是否更改ListView的背景选择颜色?

eqqqjvef  于 2023-03-24  发布在  其他
关注(0)|答案(3)|浏览(138)

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

vsaztqbk

vsaztqbk1#

如果你想让你的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);
}
hgb9j2n6

hgb9j2n62#

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

bwntbbo3

bwntbbo33#

ObjectListView--WinForm ListView的 Package 器--具有允许您控制所选行的背景和前景色的属性。它使用Obalix建议的技术,但它已经为您完成了艰苦的工作。
所以,只要稍加努力,你就可以产生这样的东西:

(来源:codeproject.com
“Feel Good Inc”行示出了用于选择的定制前景和背景。

相关问题