注册 登录
编程论坛 VB6论坛

listview 表头数值为负数排序,并着色

kings12333 发布于 2023-03-16 13:41, 994 次点击
请大神们,帮看看listview 点击表头数值为负数排序功能已实现, 但是排序后无法对负数和正数进行区分着色.
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
9 回复
#2
kings123332023-03-17 08:22
点击表头排序后的这个ListView1.SortOrder怎么让它改变呢?
#3
wds12023-03-25 16:24
你的程序排序是调用模块完成,排序时没有着色处理。
1、由于listview排序数值和排序字符变量处理不一样,因此需要额外模块处理。或者在模块处理中着色,或模块处理后着色
2、改用支持数值,字符排序的控件,例如用MSFlexGrid1
附件是示例,代码相对简洁
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2023-3-25 16:34编辑过]

#4
kings123332023-03-25 21:57
回复 3楼 wds1
非常谢谢老师...
#5
kings123332023-03-25 22:10
回复 3楼 wds1
顺便请教一下老师MSFlexGrid控件能对单个格子的底色着色吗?语句是什么? 而一直用的 Listview控件只能改字体的颜色,改底色也只能改整行的底色,还特别麻烦
#6
wds12023-03-26 01:00
1、可以,下列示例对2列,2行底色为红色。
MSFlexGrid1.row=2'当前行
MSFlexGrid1.col=2'当前列
MSFlexGrid1.CellBackColor = vbRed
2、如果数据量较大,为了加快速度
先设置:MSFlexGrid1.Visible =false
       执行赋值,着色等操作
操作后:MSFlexGrid1.Visible =true
#7
kings123332023-03-26 09:49
回复 6楼 wds1
谢谢
#8
kings123332023-03-26 10:14
回复 6楼 wds1
再次请教一下,用数组的方式对MSFlexGrid赋值的话,比如一个二维数组该如何写,因为数组快很多
#9
wds12023-03-26 11:06
假设数组arr(x1,y1)
MSFlexGrid1.Visible =false'这个语句加了,二维表赋值与内存数组赋值基本感觉不出来。
MSFlexGrid1.rows=x1+2'重定义表行数【包含行头】
MSFlexGrid1.cols=y1+2'重定义表列数【包含列头】
for i=0 to x1
  for j=0 to y1
    MSFlexGrid1.TextMatrix(i+1, j+1)'假设你的表格头为(1,1)为首节点
  next
next
MSFlexGrid1.Visible =true
#10
kings123332023-03-26 11:25
回复 9楼 wds1
明白了.谢谢
1