2012-06-24 61 views
0

我是一个新手,我遇到了一个问题,列表框花了很长时间才显示出来。.net的列表框数据(大)花费太多时间来显示

这在java中是不一样的(它花费的时间非常少 - 最多一秒)。

那么,是否有任何补救措施,这?,任何其他形式控制?或其他方式?

imports System.Threading 
imports System.Windows.Forms 

Class form1 
     Inherits Form 

    Public d As Object() = New Object(400000) {} 

    Private lb As ListBox 
    Public Sub New() 
     lb = New ListBox() 
     Controls.Add(lb) 
    End Sub 

    Public Sub update_list() 
     For i As Integer = 0 To 400000 
      d(i) = i 
     Next 
     lb.DataSource = d 
    End Sub 

    Public Shared Sub main() 
     Dim fobj As New form1() 
     Dim t As New Thread(AddressOf fobj.ShowDialog) 
     t.Start() 
     Dim t2 As New Thread(AddressOf fobj.update_list) 
      t2.Start() 
    End Sub 

End Class 
+0

我不是在vb.net,但注意到一件事情,在update_list中的计数器从0到400000可能是问题 – HatSoft

+0

你的意思是延迟可能在for循环???如果是,我不dont认为是这样,它的definetely在'lb.DataSource = d' – user1247808

+0

是的可能是当调用 d(i)= i 下一个i – HatSoft

回答

1

您需要一个支持分页的控件,因为人类无法同时处理此数量的数据(无论控件是否如此)。

Here是一种使用DataGrid的方式。另见this question

+0

你是救世主!带有BindingSource的DataGridView不会延迟。有关更多信息,不仅可以使用表格,还可以将包含项目作为其第一个属性的包装对象数组绑定 – user1247808

相关问题