2

我想知道是否有可能有一个 ListView,其中的项目可以像往常一样选择,但有一点不同。选择 ListViewItem 时,我希望在文本标签中看到选择,但我希望图像保持不变。这样做的原因是,目前绘制在图像顶​​部的蓝色选择看起来很糟糕(在透明图像上效果更差!)。

我希望不必使用 DrawItem 处理程序,但我想希望渺茫。

多谢,

最好的

坦率

编辑:我想我最好添加一个显示问题的屏幕截图。我在 LargeIcon 模式下使用 ListView。

** oups 我还不允许添加图片 * 所以这里有它的链接。带来不便敬请谅解。***

http://cl.ly/adb9c6d29ffc0e2e1b5e

如您所见,所选元素是“比率与物种”。但是,我希望图标上的蓝色消失。

再次感谢。

4

2 回答 2

1

对于 winforms ListView,我知道的最简单的方法是从 ListView 继承,并覆盖 OnDrawSubitem 以仅更改图像的绘制。如果这样做,则需要将 OwnerDraw 设置为 true,并同时覆盖 OnDrawColumnHeader。

请注意,如果您不想继承,则可以改为处理 DrawSubItem 和 DrawColumnHeader。

于 2010-07-28T20:46:02.803 回答
0

我认为必须有某种方法可以直接做到这一点。可能适用于 Vista+ 的一件事是告诉 ListView 像 Windows 资源管理器一样设置自己的样式

[DllImport("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
public static extern int SetWindowTheme(IntPtr hWnd, String pszSubAppName, String pszSubIdList);

SetWindowTheme(this.lvSessions.Handle, "Explorer", null);
于 2012-11-07T15:24:58.857 回答