如何更改ListView上的选择颜色?默认情况下,当用户选择一个项目时,它会显示蓝色背景。我想将其更改为深灰色或其他颜色...感谢您的帮助!
vsaztqbk1#
如果你想让你的ListView拥有Windows资源管理器ListView的风格(包括Win7/Vista中的圆形边缘的漂亮外观),你可以使用一个小P/Invoke来实现:
ListView
[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); }
hgb9j2n62#
对于WinForms,您必须将OwnerDraw属性设置为true,然后使用DrawItem和DrawSubItem事件手动绘制项目。See here为例。
OwnerDraw
DrawItem
DrawSubItem
bwntbbo33#
ObjectListView--WinForm ListView的 Package 器--具有允许您控制所选行的背景和前景色的属性。它使用Obalix建议的技术,但它已经为您完成了艰苦的工作。所以,只要稍加努力,你就可以产生这样的东西:
(来源:codeproject.com)“Feel Good Inc”行示出了用于选择的定制前景和背景。
3条答案
按热度按时间vsaztqbk1#
如果你想让你的
ListView
拥有Windows资源管理器ListView
的风格(包括Win7/Vista中的圆形边缘的漂亮外观),你可以使用一个小P/Invoke来实现:hgb9j2n62#
对于WinForms,您必须将
OwnerDraw
属性设置为true,然后使用DrawItem
和DrawSubItem
事件手动绘制项目。See here为例。
bwntbbo33#
ObjectListView--WinForm ListView的 Package 器--具有允许您控制所选行的背景和前景色的属性。它使用Obalix建议的技术,但它已经为您完成了艰苦的工作。
所以,只要稍加努力,你就可以产生这样的东西:
(来源:codeproject.com)
“Feel Good Inc”行示出了用于选择的定制前景和背景。