C# WinForm ListView控件美化换肤
2010-01-01 15:48
766 查看
先看效果:
.NET自带的ListView控件本身就有部分BUG,例如当设置显示模式设为Tile(平铺)样式的时候,选择不同的项,就会有些选择后的背景没有完全刷新,会留下部分聚焦框。在美化的过程中,我尽量注意了这些问题,但是也没有做过多的测试,也有可能存在一些问题,首先说一下到目前已经实现了的和没有实现的功能。
实现的功能:
1、 换边框颜色。
2、 当显示模式为Details 和 List时,间隔的项显示不同的背景色。
3、 当显示模式为Details时,对列表头的美化。
4、 各种显示样式(LargeIcon、SmallIcon、List、Tile、Details)的项选择后的背景美化。
没有实现的功能:
1、 不支持显示CheckBox。这个不是不能画出来,问题是获取不到CheckBox显示的位置,因为只有点击的是系统默认的CheckBox的位置,那个项才会被选中,自己绘制的CheckBox跟默认的的位置不对的话,点击了是没用的。所以就没有支持CheckBox。
对各个项的绘制,可以通过GetBounds方法得到图标和文本的所在位置和大小,就是没有获取CheckBox的。LargeIcon、SmallIcon、List显示样式的绘制比较容易,Details样式的绘制需要注意的FullRowSelect不同设置时背景的绘制,Tile样式的文本绘制麻烦些,需要分别计算每个SubItem的文本的位置和大小。图标的绘制在项不选中的情况下很简单,选中后要实现想系统自带的那种效果需要要到API函数:ImageList_GetIcon,具体的方法,来看看全部的绘制代码吧:......
完整文章参考《C# WinForm控件美化扩展系列之ListView(4)-实现所有样式的美化》。
.NET自带的ListView控件本身就有部分BUG,例如当设置显示模式设为Tile(平铺)样式的时候,选择不同的项,就会有些选择后的背景没有完全刷新,会留下部分聚焦框。在美化的过程中,我尽量注意了这些问题,但是也没有做过多的测试,也有可能存在一些问题,首先说一下到目前已经实现了的和没有实现的功能。
实现的功能:
1、 换边框颜色。
2、 当显示模式为Details 和 List时,间隔的项显示不同的背景色。
3、 当显示模式为Details时,对列表头的美化。
4、 各种显示样式(LargeIcon、SmallIcon、List、Tile、Details)的项选择后的背景美化。
没有实现的功能:
1、 不支持显示CheckBox。这个不是不能画出来,问题是获取不到CheckBox显示的位置,因为只有点击的是系统默认的CheckBox的位置,那个项才会被选中,自己绘制的CheckBox跟默认的的位置不对的话,点击了是没用的。所以就没有支持CheckBox。
对各个项的绘制,可以通过GetBounds方法得到图标和文本的所在位置和大小,就是没有获取CheckBox的。LargeIcon、SmallIcon、List显示样式的绘制比较容易,Details样式的绘制需要注意的FullRowSelect不同设置时背景的绘制,Tile样式的文本绘制麻烦些,需要分别计算每个SubItem的文本的位置和大小。图标的绘制在项不选中的情况下很简单,选中后要实现想系统自带的那种效果需要要到API函数:ImageList_GetIcon,具体的方法,来看看全部的绘制代码吧:......
完整文章参考《C# WinForm控件美化扩展系列之ListView(4)-实现所有样式的美化》。
相关文章推荐
- C# WinForm控件美化扩展系列之ListView(2)
- C# WinForm 控件美化之改变ListView Head 的背景色
- C# WinForm ComboBox控件美化换肤
- C# WinForm控件美化扩展系列之ListView
- C# WinForm控件美化扩展系列之ListView
- C# WinForm控件美化扩展系列之ImageComboBox_C# 视角_CS程序员之窗
- C#中winform窗体的美化控件 iriskin(一)
- c# winform listview控件简单用法
- Skin控件 C# Winform窗体美化控件
- C# WinForm控件开发和美化(2)——PanelEx控件
- C#中winform窗体的美化控件 iriskin(二)
- (转)C# WinForm控件开发和美化(2)——PanelEx控件
- c#winform中如何修改ListView控件每个单元格的颜色
- C# winform控件之listview学习积累
- C# WinForm控件美化扩展系列之TabControl控件(3)-完整版
- C# WinForm控件美化扩展系列之TabControl控件(1)
- C# WinForm控件美化扩展系列之ImageComboBox_C# 视角_CS程序员之窗
- C# 实现TrackBar控件美化换肤
- 用 IrisSkin 为C# winform 换肤 美化
- C# WinForm控件开发和美化(1)——控件效果介绍