[转] 实现listview控件report视图下任何列头的双向排序

 

None.gif Option   Explicit
None.gif
None.gif
Private   Sub  Form_Load()
None.gif    
Dim  i  As   Integer
None.gif    
Dim  itemx  As  ListItem
None.gif    ListView1.View 
=  lvwReport
None.gif    
With  ListView1.ColumnHeaders
None.gif        .Add , , 
" 编号 " 600 , lvwColumnLeft
None.gif    
For  i  =   1   To   2
None.gif        .Add , , 
" 内容项 "   &  i,  1000 , lvwColumnRight
None.gif    
Next
None.gif    
End   With
None.gif        
None.gif    
With  ListView1.ListItems
None.gif    
For  i  =   1   To   10
None.gif        
Set  itemx  =  .Add
None.gif        itemx.SubItems(
1 =  i
None.gif        itemx.SubItems(
2 =   Chr ( 64   +  i)
None.gif    
Next
None.gif    
End   With
None.gif
None.gif
End Sub
None.gif
None.gif
Private   Sub  ListView1_ColumnClick(ByVal ColumnHeader  As  MSComctlLib.ColumnHeader)
None.gif    
With  ListView1
None.gif        
If  (ColumnHeader.Index  -   1 =  .SortKey  Then
None.gif            .SortOrder 
=  (.SortOrder  +   1 Mod   2
None.gif        
Else
None.gif            .Sorted 
=   False
None.gif            .SortOrder 
=   0
None.gif            .SortKey 
=  ColumnHeader.Index  -   1
None.gif            .Sorted 
=   True
None.gif        
End   If
None.gif    
End   With
None.gif
End Sub
None.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VB.Net中,可以使用ListView件进行表格的展示和排序,并且可以通过增加排序小箭的方式来显示当前排序。 1. 实现任意排序ListView件原生支持按照某一进行排序,可以通过设置ListView的Sorting属性来指定排序的方式。例如,可以将Sorting属性设置为Ascending来实现按照升序排序,设置为Descending来实现按照降序排序。当点击标题时,可以在ColumnClick事件中获取到当前点击的索引,并在事件处理程序中编写排序逻辑,最后将Sorting属性设置为正确的排序方式即可。 2. 增加排序小箭ListView件并没有直接提供增加排序小箭的方法,但可以通过一些其他方式来实现。可以使用ImageList件创建一个包含排序图像的ImageList对象,然后通过在ListView上绘制箭图像的方式来显示排序状态。可以通过ColumnClick事件来确定当前点击的,并根据排序方式设置不同的图像来改变箭的显示。 下面是一个简单的示例代码: ```vb.net ' 假设ListView件名为listView1,ImageList件名为imageList1 ' 初始化ImageList imageList1.Images.Add("asc", Image.FromFile("arrow_up.png")) imageList1.Images.Add("desc", Image.FromFile("arrow_down.png")) ' 点击事件处理程序 Private Sub listView1_ColumnClick(sender As Object, e As ColumnClickEventArgs) Handles listView1.ColumnClick ' 获取当前排序索引 Dim columnIndex As Integer = e.Column ' 判断是否当前排序 If columnIndex = listView1.Sorting AndAlso listView1.Sorting <> SortOrder.None Then ' 如果当前已经是排序,则切换排序方式 If listView1.Sorting = SortOrder.Ascending Then listView1.Sorting = SortOrder.Descending Else listView1.Sorting = SortOrder.Ascending End If Else ' 如果当前不是排序,则按默认升序排序 listView1.Sorting = SortOrder.Ascending End If ' 设置当前排序索引 listView1.Sorting = columnIndex ' 根据排序方式设置图像 If listView1.Sorting = SortOrder.Ascending Then listView1.Columns(columnIndex).ImageKey = "asc" ElseIf listView1.Sorting = SortOrder.Descending Then listView1.Columns(columnIndex).ImageKey = "desc" Else listView1.Columns(columnIndex).ImageKey = Nothing End If ' 执行排序操作 listView1.Sort() End Sub ``` 通过以上代码,可以实现ListView点击后进行任意排序,并且根据排序方式显示相应的排序小箭图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值