现有两个listbox,其中一个已经有100W条记录,另外一个没有记录,怎么能快速把第一个里面的数据拷贝到第二个里面来,需要快速,如果还是用循环语句来一个个放的话会非常慢,请高手支招!!!不胜感激!!

解决方案 »

  1.   

    不会
    For i = 0 To List1.ListCount - 1
            List2.AddItem List1.List(i)
            DoEvents
        Next i
      

  2.   

    listbox你放了几百万个数据?真强
    好象只能选换去additem啊,代码同楼上
      

  3.   

    用Listbox放100W记录?太强了,我觉得已经失去了listbox的意义。还不如用listview什么的做个分页呢
      

  4.   

    除了用AddItem之外就只能用DataSource了,没别的办法
    List1里的数据是怎么加进去的?
      

  5.   

    maskdata(凋零|不经意的走过只留下浅浅的足迹…) DATASOURCE怎么加?
      

  6.   

    就是设置数据源,用法同别的DataSource一样
      

  7.   

    set list1.datasource=list2??? 不对吧?
      

  8.   

    下面的代码就算有再多的记录也不会有慢的感觉(只是感觉,时间还是要的 ^_^ ):
    Option ExplicitPrivate Type RECT
       Left As Long
       Top As Long
       Right As Long
       Bottom As Long
    End TypePrivate Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
    Private Declare Function ValidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As LongPrivate Sub Command1_Click()
       Dim rcClient As RECT
       Dim I As Long, lngCount As Long
       
       Call GetClientRect(List2.hwnd, rcClient)
       
       List2.Clear
       lngCount = List1.ListCount
       For I = 0 To lngCount - 1
          List2.AddItem List1.List(I)
          
          If I > 100 Then
             Call ValidateRect(List2.hwnd, rcClient)
          End If
          DoEvents
       Next I
       Call InvalidateRect(List2.hwnd, rcClient, True)
    End Sub
      

  9.   

    你将两个ListBox的Visible属性设为False,然后再相互对拷,这样速度快一些。因为ListBox在加一个Item的时候,就需要进行重画一次,你可以将这时间给缩了。
      

  10.   

    楼主List1里的数据是怎么加进去的?
      

  11.   

    很简单啊,就是 list1.additem
      

  12.   

    //现有两个listbox,其中一个已经有100W条记录厉害,listbox最多可以放32767条数据。你怎么加的?
      

  13.   

    晕,你自己不试?
    for i=1 to 1000000
    list1.additem cstr(i)
    next i
      

  14.   

    //晕,你自己不试?呵呵,有必要试吗,如果象你这样添加大量数据的话,listbox的各元素的listindex将按照:0,1-32767,-32768,-32767-0这样的规律变化,也就是说会出现多个元素其listindex相同,这种情况下怎么定位你想过吗?如果一定要使用大量数据的话,建议使用数据库实现
      

  15.   

    hehe ,如果是把list1里面的数据转移到list2呢?
      

  16.   

    也就是说不需要保存list1的数据
      

  17.   

    不知道你填充第一个listbox时用了多长时间
    感觉是你想出来的,应该没作吧