还是listbox的问题!!!请指教!

susanxiaoshan 2003-12-09 10:42:25
窗体中有两个listbox控件,我想按command1时listbox1里被选中的项会消失进入listbox2里,然后按command2时,listbox2中被选中的项又会消失回到listbox1中,这些都实现了。我现在想问,怎么才能使回到listbox1中的项还保持最开始的排序?
...全文
57 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxcc 2003-12-14
  • 打赏
  • 举报
回复
Dim arrList() As String
Private Sub Command1_Click()
If List1.ListIndex >= 0 Then
List2.AddItem List1.List(List1.ListIndex)
List1.RemoveItem List1.ListIndex
'两个都排序
sortList List1
sortList List2
End If
End Sub

Private Sub Command2_Click()
If List2.ListIndex >= 0 Then
List1.AddItem List2.List(List2.ListIndex)
List2.RemoveItem List2.ListIndex
'两个都排序
sortList List1
sortList List2
End If
End Sub

Private Sub Form_Load()
List1.AddItem "A"
List1.AddItem "B"
List1.AddItem "C"
List1.AddItem "D"
List1.AddItem "E"
List1.AddItem "F"
List1.AddItem "G"
End Sub


Private Sub List1_DblClick()
Command1_Click
End Sub

Private Sub List2_DblClick()
Command2_Click
End Sub


Private Sub sortList(sortList As ListBox)
Dim i As Integer
Dim iCount As Integer

iCount = sortList.ListCount
ReDim arrList(iCount)
For i = 0 To iCount - 1
arrList(i) = sortList.List(i)
Next

'对arrlist数组进行相应排序(比如起泡,快速等等,这不用写了吧!)

sortList.Clear
For i = 0 To iCount
sortList.List(i) = arrList(i)
Next

End Sub
susanxiaoshan 2003-12-13
  • 打赏
  • 举报
回复
不好意思,我就是想请教怎么用?告诉我我马上给分
lxcc 2003-12-13
  • 打赏
  • 举报
回复
那就的借用两个数组
susanxiaoshan 2003-12-13
  • 打赏
  • 举报
回复
不行,我在list1里的项都是字符形的,如果用sorted属性,那些项就按拼音顺序排了,不能按我的要求前后排列了
lxcc 2003-12-12
  • 打赏
  • 举报
回复
'在属性窗口设置list1,list2的sorted属性为true
Private Sub Command1_Click()
If List1.ListIndex >= 0 Then
List2.AddItem List1.List(List1.ListIndex)
List1.RemoveItem List1.ListIndex
End If
End Sub

Private Sub Command2_Click()
If List2.ListIndex >= 0 Then
List1.AddItem List2.List(List2.ListIndex)
List2.RemoveItem List2.ListIndex
End If
End Sub

Private Sub Form_Load()
List1.AddItem "A"
List1.AddItem "B"
List1.AddItem "C"
List1.AddItem "D"
List1.AddItem "E"
List1.AddItem "F"
List1.AddItem "G"
End Sub


Private Sub List1_DblClick()
Command1_Click
End Sub

Private Sub List2_DblClick()
Command2_Click
End Sub
susanxiaoshan 2003-12-11
  • 打赏
  • 举报
回复
不好意思,能写一下具体的程序吗,我基础比较差!!!
毛仁胜 2003-12-10
  • 打赏
  • 举报
回复
哎,简单得不好说,用数组就什么问题也解决了,然后,每次消失ListBox之后,执行一下List1或List2的Refresh
aoenzh 2003-12-10
  • 打赏
  • 举报
回复
不是很难吧?
liuyanghe111 2003-12-10
  • 打赏
  • 举报
回复
比较笨的办法是用一个数组将各项存起来,然后重新载入
forever_chang 2003-12-10
  • 打赏
  • 举报
回复
设置listbox的sorted属性
northwolves 2003-12-10
  • 打赏
  • 举报
回复
Dim temp As New Collection
Private Sub Command1_Click()
Set temp = Nothing
On Error Resume Next
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
temp.Add i, List1.List(i)
List2.AddItem List1.List(i)
List1.RemoveItem i
End If
Next
End Sub

Private Sub Command2_Click()
On Error Resume Next
For i = 0 To List2.ListCount
If List2.Selected(i) = True Then
List1.AddItem List2.List(i), Val(temp(List2.List(i)))
List2.RemoveItem i
End If
Next
End Sub

Private Sub Form_Load()
List1.Clear
List2.Clear
For i = 1 To 100
List1.AddItem i & i
Next
End Sub
hcj2002 2003-12-09
  • 打赏
  • 举报
回复
我的想法:
-----------------------------------------------------------------------------
修改list.listIndex属性,使它等于转入前的属性。当然要用一个变量纪录转移前的list.listIndex 的植。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧