增加的时候搜索右边的list中是否有重复的!

解决方案 »

  1.   

    for i=1 to list2.listcount
    if list1.listindex <> list2.list(i).text then 
    list2.additem list1.list(list1.listindex)
      

  2.   

    http://www.leyoo.com/vbgood/experience/index.asp?action=read&id=3783
    就是专门讲这个的,去看看
      

  3.   

    aaa=0
    for i=0 to list2.listcount-1
      if aaa=0 and list2.list(i)=list1.list(list1.listindex) then
           aaa=1
      else
           list2.additem list1.list(list1.listindex)
      end if
    next贴在list1的click事件里,自己体会~~
      

  4.   


    Private Sub cmd_select_table_Click()
        If lst_Tables.ListIndex <> -1 Then
            lst_select_table.AddItem lst_Tables.List(lst_Tables.ListIndex)
            
        End If
       
    End Sub
      

  5.   

    笑笑兄,我开始的时候list里面就没有数据,要我怎么能list2.listcount-1
    ,你这个方法肯定是不行的,freehorse_1981哥们用api函数,是不是觉得太麻烦了,难道就没有更简单的办法了码??
      

  6.   

    不用API,只用VB代码写lstColStName和lstColEdName两个ListBox
    Private Sub lstColStNameAboutlstColConEndName(ByVal i As Integer)
        '函数名:lstColStNameAboutlstColEndName
        '入口参数:i as integer
        '         1、lstColStName向lstColEdName传字段名
        '         2、lstColEdName减少字段名
        '出口参数:无
        '功能:lstColStName与colEdName之间的数据传递
        '编写日期:2002.8.27
        '编写人:yuiee
        '备注:lstColStName或lstColEdName中必须有内容,本函数不提供这方面出错处理
        On Error GoTo errend
        Select Case i
            Case 1
                Dim j As Integer
                    '多重先判断
                    For j = 0 To lstColStName.ListCount - 1
                        Dim m As Integer
                        '当为选中项目时
                        If lstColStName.Selected(j) Then
                            Dim bTmp As Boolean
                            bTmp = False        '存在标识
                            'lstColEdName中是否存在判断
                            For m = 0 To lstColEdName.ListCount - 1
                                If lstColStName.List(j) = lstColEdName.List(m) Then
                                    bTmp = True
                                End If
                            Next m
                            If bTmp = False Then    '存在时
                                '向lstColEdName添加
                                lstColEdName.AddItem (lstColStName.List(j))                        End If
                        End If
                    Next j
            Case 2
                    '多重选择判断                For j = lstColEdName.ListCount - 1 To 0 Step -1
                        If j = 0 Then
                            j = j
                        End If
                        If lstColEdName.Selected(j) Then
                            'MFGridCon重赋值
                            Dim n, nTmp, nNum As Integer
                            Dim arryTmp() As Integer
                            ReDim arryTmp(0)
                            nNum = 0
                            nTmp = 0
                            'lstColEdName移除
                            lstColEdName.RemoveItem (j)                    End If                Next j
        End Select
        Exit Sub
    errend:
        
    End SubPrivate Sub lstColEdName_DblClick()
    lstColStNameAboutlstColConEndName (2)'删
    End SubPrivate Sub lstColStName_DblClick()
    lstColStNameAboutlstColConEndName (1)'添
    End Sub
      

  7.   

    lysamper(梁好汉) :
    直接粘到list1的click事件里:    For I = 0 To List2.ListCount - 1
            If List2.List(I) = List1.List(List1.ListIndex) Then Exit Sub
        Next
        List2.AddItem List1.List(List1.ListIndex)经过测试好使的