2012-06-24 62 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

相關問題