新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:VB中如何用List进行选择

VB中如何用List进行选择

新客网 XKER.COM 2004-12-09 来源: 收藏本文
提供
单Item函数:
cmdDel_Click
cmdAdd_Click
多Item函数:
cmdDelAll_Click
cmdAddAll_Click
---------------------------------------------------------------------------------------------------------------------
'Option Explicit

'author:nyb
'Time:2002-04-05
'传入list1,list2,然后我们可以对list1,和list2中的item进行处理.
'*All areas of code where modifications are necessary
'*to integrate this object with a project are documented
'with comments denoted by Note:.
'*To locate these comments,search for ‘*NOTE::.
'****************************************************************************************

Public Sub cmdDelAll_Click(List1 As ListBox, List2 As ListBox) '<<
'*purpose: delete all list2.item
'*Accept: list1 没有用,list2处理对象
For i = (List2.ListCount - 1) To 0 Step -1
List2.RemoveItem i
Next i
End Sub
Public Sub CmdAdd2To1_Click(List1 As ListBox, List2 As ListBox, List3 As ListBox) '>>
'*purpose: all item of list1 and list2 are inputed to list3
'*Accept: list1,list2
For i = 0 To (List1.ListCount - 1)
List3.AddItem List1.List(i)
Next i
For i = 0 To (List2.ListCount - 1)
List3.AddItem List2.List(i)
Next i
End Sub

Public Sub cmdAddAll_Click(List1 As ListBox, List2 As ListBox, Index As Integer) '>>
'*purpose: add all item of list1 inputed to list2.if item had been there, It won't be inputed
'*Accept: list1,list2
If List2.ListCount = 0 Then
For i = 0 To (List1.ListCount - 1)
List2.AddItem List1.List(i)
Next i
Else
For i = 0 To (List1.ListCount - 1)
Flag = CheckSelected(List1, List2, List1.List(i))
If Flag = "notbe" Then List2.AddItem List1.List(i)
Next i
End If
End Sub


Public Sub cmdDel_Click(List1 As ListBox, List2 As ListBox) '<---
'*purpose: the selected items of list2 are cleared
'*Accept: list1 没有用,list2处理对象
Dim i As Integer
If List2.SelCount > 0 Then
For i = (List2.ListCount - 1) To 0 Step -1
If List2.Selected(i) = True Then List2.RemoveItem i
Next i
End If
End Sub

Public Sub cmdadd_Click(List1 As ListBox, List2 As ListBox, Index As Integer) '--->
'*purpose: the selected items of list1 is inputed into list2
' list2为空,list2又可以多选,那么items selected in list1 are inputed to list2
' list2不为空,list2又可以多选,那么先检查item是否在list2中,如果在,那么就不添入list2
' list2设为单选,那么list2只添加list1中的的第一选中项
'*Accept: list1 选中的项目,list2为要加入的listbox
Dim i As Integer
Dim Flag As String

If Index > 0 Then
If List2.ListCount >= 1 Then
If Index = 2 Then
If List2.ListCount >= 2 Then
If List1.MultiSelect = 0 Then
MsgBox "只能选定两期对比!", vbExclamation, "操作提示!"
Exit Sub
End If
End If
End If
End If
End If

If List2.ListCount = 0 And List2.MultiSelect = 2 Then
For i = 0 To (List1.ListCount - 1)
If List1.Selected(i) = True Then List2.AddItem List1.List(i)
Next i
ElseIf List2.ListCount > 0 And List2.MultiSelect = 2 Then
For i = 0 To (List1.ListCount - 1)
Flag = CheckSelected(List1, List2, List1.List(i))
If List1.Selected(i) = True And Flag = "notbe" Then List2.AddItem List1.List(i)
Next i
ElseIf List2.MultiSelect = 0 Then
Call cmdDelAll_Click(List1, List2)
For i = 0 To (List1.ListCount - 1)
If List1.Selected(i) = True Then List2.AddItem List1.List(i)
Next i
End If
Call ClearSelect(List1)
End Sub

Private Function CheckSelected(List1 As ListBox, List2 As ListBox, CityItem As String) As String
'*purpose: '检查item是否已经被添加,已添加则CheckSelected = "be"
'*Accept: list1 选中的项目,list2为要加入的listbox,CityItem为list1 中一个被选中的项目
'*Feedback: CheckSelected , "be" 表示这个item在list2中存在
For i = (List2.ListCount - 1) To 0 Step -1
If CityItem = List2.List(i) Then
CheckSelected = "be"
Exit For
Else: CheckSelected = "notbe"
End If
Next i
End Function

Private Sub ClearSelect(List1)
'*purpose: Clear List1's selected
'*Accept: list1 ,the list box to clear selected
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
List1.Selected(i) = False
End If
Next i
End Sub




收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐