(VB)一个方便你交换Listview中任意两行内容的函数

有时候我们想对Listview的数据进行上移、下移,但是貌似VB没有一个内置的函数来支持此操作,每次写代码来实现又太麻烦。于是,我就写了本函数,希望能对大家有用,代码写的不太好,见笑了。

1.支持任意列数的Listview的数据交换

2.使用方便,操作简单。

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
' 交换Listview两行内容
Public Sub SwapList(i1 As Long , i2 As Long , slistview As ListView)
Dim i As Long
Dim tempHI1() As String
Dim tempHI2() As String

Dim iCount As Long
Dim itCount As Long ' 特殊隐藏项个数
iCount = slistview.ColumnHeaders.Count - 1
' ''''''''''i1'''''''''''''''''''
itCount = 12
ReDim tempHI1(iCount + itCount)
tempHI1(
0 ) = slistview.ListItems.Item(i1).Tag
tempHI1(
1 ) = slistview.ListItems.Item(i1).Key
tempHI1(
2 ) = slistview.ListItems.Item(i1).Text
tempHI1(
3 ) = slistview.ListItems.Item(i1).SmallIcon
tempHI1(
4 ) = slistview.ListItems.Item(i1).Icon
tempHI1(
5 ) = slistview.ListItems.Item(i1).ToolTipText
tempHI1(
6 ) = slistview.ListItems.Item(i1).ForeColor
tempHI1(
7 ) = CStr (slistview.ListItems.Item(i1).Bold)
tempHI1(
8 ) = CStr (slistview.ListItems.Item(i1).Checked)
tempHI1(
9 ) = CStr (slistview.ListItems.Item(i1).Ghosted)
tempHI1(
10 ) = CStr (slistview.ListItems.Item(i1).Selected)
For i = 1 To iCount
tempHI1(i
+ itCount - 1 ) = slistview.ListItems.Item(i1).SubItems(i)
Next
' '''''''''''''''''''''''''''''
'
''''''''''i2'''''''''''''''''''
ReDim tempHI2(iCount + itCount)
tempHI2(
0 ) = slistview.ListItems.Item(i2).Tag
tempHI2(
1 ) = slistview.ListItems.Item(i2).Key
tempHI2(
2 ) = slistview.ListItems.Item(i2).Text
tempHI2(
3 ) = slistview.ListItems.Item(i2).SmallIcon
tempHI2(
4 ) = slistview.ListItems.Item(i2).Icon
tempHI2(
5 ) = slistview.ListItems.Item(i2).ToolTipText
tempHI2(
6 ) = slistview.ListItems.Item(i2).ForeColor
tempHI2(
7 ) = CStr (slistview.ListItems.Item(i2).Bold)
tempHI2(
8 ) = CStr (slistview.ListItems.Item(i2).Checked)
tempHI2(
9 ) = CStr (slistview.ListItems.Item(i2).Ghosted)
tempHI2(
10 ) = CStr (slistview.ListItems.Item(i2).Selected)

For i = 1 To iCount
tempHI2(i
+ itCount - 1 ) = slistview.ListItems.Item(i2).SubItems(i)
Next
' '''''''''''''''''''''''''''''
slistview.ListItems.Item(i1).Key = ""
slistview.ListItems.Item(i2).Key
= ""

slistview.ListItems.Item(i2).Tag
= tempHI1( 0 )
slistview.ListItems.Item(i2).Key
= tempHI1( 1 )
slistview.ListItems.Item(i2).Text
= tempHI1( 2 )
slistview.ListItems.Item(i2).SmallIcon
= Val(tempHI1( 3 ))
slistview.ListItems.Item(i2).Icon
= Val(tempHI1( 4 ))
slistview.ListItems.Item(i2).ToolTipText
= tempHI1( 5 )
slistview.ListItems.Item(i2).ForeColor
= Val(tempHI1( 6 ))
slistview.ListItems.Item(i2).Bold
= tempHI1( 7 )
slistview.ListItems.Item(i2).Checked
= tempHI1( 8 )
slistview.ListItems.Item(i2).Ghosted
= tempHI1( 9 )
slistview.ListItems.Item(i2).Selected
= tempHI1( 10 )

slistview.ListItems.Item(i1).Tag
= tempHI2( 0 )
slistview.ListItems.Item(i1).Key
= tempHI2( 1 )
slistview.ListItems.Item(i1).Text
= tempHI2( 2 )
slistview.ListItems.Item(i1).SmallIcon
= Val(tempHI2( 3 ))
slistview.ListItems.Item(i1).Icon
= Val(tempHI2( 4 ))
slistview.ListItems.Item(i1).ToolTipText
= tempHI2( 5 )
slistview.ListItems.Item(i1).ForeColor
= Val(tempHI2( 6 ))
slistview.ListItems.Item(i1).Bold
= tempHI2( 7 )
slistview.ListItems.Item(i1).Checked
= tempHI2( 8 )
slistview.ListItems.Item(i1).Ghosted
= tempHI2( 9 )
slistview.ListItems.Item(i1).Selected
= tempHI2( 10 )
For i = 1 To iCount
slistview.ListItems.Item(i2).SubItems(i)
= tempHI1(i + itCount - 1 )
slistview.ListItems.Item(i1).SubItems(i)
= tempHI2(i + itCount - 1 )
Next
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
itCount = 5
ReDim tempHI1(itCount)
For i = 1 To iCount
tempHI1(
0 ) = slistview.ListItems.Item(i1).ListSubItems(i).Tag
tempHI1(
1 ) = slistview.ListItems.Item(i1).ListSubItems(i).Key
tempHI1(
2 ) = slistview.ListItems.Item(i1).ListSubItems(i).ReportIcon
tempHI1(
3 ) = slistview.ListItems.Item(i1).ListSubItems(i).ToolTipText
tempHI1(
4 ) = slistview.ListItems.Item(i1).ListSubItems(i).ForeColor
tempHI1(
5 ) = CStr (slistview.ListItems.Item(i1).ListSubItems(i).Bold)

tempHI2(
0 ) = slistview.ListItems.Item(i2).ListSubItems(i).Tag
tempHI2(
1 ) = slistview.ListItems.Item(i2).ListSubItems(i).Key
tempHI2(
2 ) = slistview.ListItems.Item(i2).ListSubItems(i).ReportIcon
tempHI2(
3 ) = slistview.ListItems.Item(i2).ListSubItems(i).ToolTipText
tempHI2(
4 ) = slistview.ListItems.Item(i2).ListSubItems(i).ForeColor
tempHI2(
5 ) = CStr (slistview.ListItems.Item(i2).ListSubItems(i).Bold)

slistview.ListItems.Item(i2).ListSubItems(i).Tag
= tempHI1( 0 )
slistview.ListItems.Item(i2).ListSubItems(i).Key
= tempHI1( 1 )
slistview.ListItems.Item(i2).ListSubItems(i).ReportIcon
= Val(tempHI1( 2 ))
slistview.ListItems.Item(i2).ListSubItems(i).ToolTipText
= tempHI1( 3 )
slistview.ListItems.Item(i2).ListSubItems(i).ForeColor
= Val(tempHI1( 4 ))
slistview.ListItems.Item(i2).ListSubItems(i).Bold
= tempHI1( 5 )

slistview.ListItems.Item(i1).ListSubItems(i).Tag
= tempHI2( 0 )
slistview.ListItems.Item(i1).ListSubItems(i).Key
= tempHI2( 1 )
slistview.ListItems.Item(i1).ListSubItems(i).ReportIcon
= Val(tempHI2( 2 ))
slistview.ListItems.Item(i1).ListSubItems(i).ToolTipText
= tempHI2( 3 )
slistview.ListItems.Item(i1).ListSubItems(i).ForeColor
= Val(tempHI2( 4 ))
slistview.ListItems.Item(i1).ListSubItems(i).Bold
= tempHI2( 5 )
Next
End Sub

 

比如我要交换Listview1的第3行和第4行数据,只要调用 Call SwapList(3,4,Listview1) 即可

转载于:https://www.cnblogs.com/zilin/articles/1725245.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值