level 3
'全选(已实现)
Private Sub cmdAll_Click()
For A = 1 To lvw1.ListItems.Count - 1
If lvw1.ListItems(A).Checked = False Then
lvw1.ListItems(A).Checked = True
End If
Next A
End Sub
'listview1全选后点击按钮移动至listview2(这里就不会写了,求大神!)
Private Sub cmdGCJP_Click()
End Sub
2021年02月02日 03点02分
1
level 11
所谓的移动,就是在一边增加,在一边删除。
增加好像是add什么的
删除好像是del什么的
2021年02月02日 09点02分
3
全部是不是cls还是这个的全拼那个词可以一次搞定
2021年02月02日 09点02分
另外你不用作“全选”,直接循环第一个的个数,在第二个里添加第一个的循环项。完了将第一个清空就好了
2021年02月02日 09点02分
不懂哎
2021年02月03日 01点02分
level 15
ListView不同于VB内置的列表框控件,要移动一项还是比较麻烦的,比如将lvw1的第i项移动到lvw2的最后,代码需要这样写:
Dim NewItem As ListItem
Set NewItem = lvw2.ListItems.Add()
NewItem.Text = lvw1.ListItems(i).Text
For j = 1 To lvw1.ColumnHeaders.Count - 1
NewItem.SubItems(j) = lvw1.ListItems(i).SubItems(j)
Next j
lvw1.ListItems.Remove i
然后,对于你这个要求,如果只是“全部移动”,那么没必要分成两个按钮来实现;如果要分,那么应该是一个“全选”,一个“移动选定项”
如果你想用一个按钮实现“全部移动”,可以这样写代码:
For i = 1 To lvw1.ListItems.Count
'这里写上述移动一项的代码,但不需要写最后的Remove
Next i
lvw1.ListItems.Clear '全部移动可以在循环之后一次性全部清除
如果你想分别实现“全选”和“移动选定项”的功能,可以这样写(顺便优化一下你的“全选”):
'全选
For i = 1 To lvw1.ListItems.Count
lvw1.ListItems(i).Checked = True '不需要判断,直接选中就是
Next i
'移动选定项
i = 1
Do While i <= lvw1.ListItems.Count
If lvw1.ListItems(i).Checked Then
'这里写上述移动一项的代码
Else
i = i + 1
End If
Loop
2021年02月03日 02点02分
4
大神啊!完美解决,膜拜了,感谢感谢感谢
2021年02月03日 03点02分