当前位置:编程学习 > VB >>

怎么修改listview的ColumnHeaders样式?

关于重绘我第一次接触,一点也不懂,希望能得到帮助。

图1:


图2:


如何才能将图1的这种标准LISTVIEW的头重绘成图2这种样式?寻求详细教学,非常感谢。

--------------------编程问答-------------------- 改不了,谁让你用VB呢

引用楼主 rosibo 的回复:
关于重绘我第一次接触,一点也不懂,希望能得到帮助。

图1:


图2:


如何才能将图1的这种标准LISTVIEW的头重绘成图2这种样式?寻求详细教学,非常感谢。
--------------------编程问答-------------------- 应该能改的,应该可以重绘的。 --------------------编程问答-------------------- ListView本来就支持排序啊,没看出你那个有什么不同,楼主指的是颜色?这个颜色设置是系统设置的吧,貌似和ListView没啥必然关系。 --------------------编程问答-------------------- 那等老马回来吧,要用API
要不我帮你搜索搜索?

引用 2 楼 rosibo 的回复:
应该能改的,应该可以重绘的。
--------------------编程问答-------------------- 是的,用API,取句柄,呵呵。
我第一次接触这种。 --------------------编程问答-------------------- ListView排序不好用,需要加代码不说,加了也不好用,再添加的时候就乱套了
并且没那个箭头
第二个图估计是人家用别的语言自带的,或二次开发的

引用 3 楼 aisac 的回复:
ListView本来就支持排序啊,没看出你那个有什么不同,楼主指的是颜色?这个颜色设置是系统设置的吧,貌似和ListView没啥必然关系。
--------------------编程问答--------------------
引用 6 楼 getemail 的回复:
ListView排序不好用,需要加代码不说,加了也不好用,再添加的时候就乱套了
并且没那个箭头
第二个图估计是人家用别的语言自带的,或二次开发的

引用 3 楼 aisac 的回复:
ListView本来就支持排序啊,没看出你那个有什么不同,楼主指的是颜色?这个颜色设置是系统设置的吧,貌似和ListView没啥必然关系。

呵呵,第二个是我还只是画在PS上的。 --------------------编程问答-------------------- 这里有一个,颜色好土 --------------------编程问答--------------------
引用 8 楼 getemail 的回复:
这里有一个,颜色好土

嗯,挺好,至少也是个借鉴。 --------------------编程问答-------------------- 有一个winxpc什么什么控件,
可以将一些标准控件美化. --------------------编程问答-------------------- 关于颜色楼上的已经说明,我只补充那个列头小三角的问题,需要ListView+imageList完成排序,更换图标.
imageList里加载2幅图,分别是向上\下的小三角,在ListView1_ColumnClick事件里加上下面的代码

    '更换列表头的图标
    If ColumnHeader.Icon = 1 Then
       ColumnHeader.Icon = imageList.ListImages(2).Index
    Else
       ColumnHeader.Icon = imageList.ListImages(1).Index
    End If


如果还有问题,这里来找我
http://topic.csdn.net/u/20090917/13/2dccaaaa-6cfb-4a73-81a1-071ba4c53b3e.html?652 --------------------编程问答-------------------- 这个我想到了,但是我的程序中不会因为这么点效果动用那么多代码
这不是VB的根本

引用 11 楼 asftrhgjhkjlkttttttt 的回复:
关于颜色楼上的已经说明,我只补充那个列头小三角的问题,需要ListView+imageList完成排序,更换图标.
imageList里加载2幅图,分别是向上\下的小三角,在ListView1_ColumnClick事件里加上下面的代码

    '更换列表头的图标
    If ColumnHeader.Icon = 1 Then
      ColumnHeader.Icon = imageList.ListImages(2).Index
    Else
      ColumnHeader.Icon = imageList.ListImages(1).Index
    End If


如果还有问题,这里来找我
http://topic.csdn.net/u/20090917/13/2dccaaaa-6cfb-4a73-81a1-071ba4c53b3e.html?652
--------------------编程问答--------------------
引用 6 楼 getemail 的回复:
ListView排序不好用,需要加代码不说,加了也不好用,再添加的时候就乱套了
并且没那个箭头


没有好用不好用,看你会用不会用,我用得就没有问题 --------------------编程问答-------------------- 你排序后再追加数据条目试试

引用 13 楼 asftrhgjhkjlkttttttt 的回复:
引用 6 楼 getemail 的回复:
ListView排序不好用,需要加代码不说,加了也不好用,再添加的时候就乱套了
并且没那个箭头


没有好用不好用,看你会用不会用,我用得就没有问题
--------------------编程问答-------------------- 楼上,我认同 孤独剑 
没有好不好用,就看会不会用

最笨的方法,你加完数据,再刷新一下排序都可以,也不至于向你说的,就乱套。 --------------------编程问答-------------------- 你加上9000条记录测试一下看看什么效果

引用 15 楼 azhilee 的回复:
楼上,我认同 孤独剑
没有好不好用,就看会不会用

最笨的方法,你加完数据,再刷新一下排序都可以,也不至于向你说的,就乱套。
--------------------编程问答-------------------- 你为什么不做分页,
再说你不做分页,也不做即时加载,9000条记录,你就是点一下排序都会半天。 --------------------编程问答-------------------- 因为我要模仿图2的程序
它的也没做什么分页
说大话谁都会,真做起来就不是那么回事了

引用 17 楼 azhilee 的回复:
你为什么不做分页,
再说你不做分页,也不做即时加载,9000条记录,你就是点一下排序都会半天。
--------------------编程问答-------------------- 排序时,自动在标题上增加一个标识符就可以。
Private Sub lvwUser_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
    '用于设置标题的排序
    Select Case LCase(ColumnHeader.Key)
        Case "user_id"        '用于编号
            lvwUser.SortKey = 0
        Case "user_na"        '用户名称
            lvwUser.SortKey = 1
        Case "user_desc"      '用户描述
            lvwUser.SortKey = 2
    End Select
    '设置排序抬头标题
    lvwUser.ColumnHeaders(1).Text = "编号"
    lvwUser.ColumnHeaders(2).Text = "名称"
    lvwUser.ColumnHeaders(3).Text = "描述"
    If lvwUser.SortOrder = lvwAscending Then
        lvwUser.SortOrder = lvwDescending
        ColumnHeader.Text = ColumnHeader.Text & "倒序标识"
    Else
        lvwUser.SortOrder = lvwAscending
        ColumnHeader.Text = ColumnHeader.Text & "顺序标识"
    End If
    lvwUser.Sorted = True
End Sub --------------------编程问答-------------------- 用LVM_GETHEADER消息获取listview的HEADER控件窗口句柄,然后子类化,拦截WM_ERASEBKGRND\WM_PAINT消息重绘
补充:VB ,  控件
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,