【问题标题】:.net's ListBox data(large) takes too much time to show up.net 的 ListBox 数据(大)需要太多时间才能显示出来
【发布时间】:2012-06-24 20:29:45
【问题描述】:

我是 .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

【问题讨论】:

  • 我不在 vb.net 中,但注意到 update_list 中从 0 到 400000 的计数器可能是问题
  • 你的意思是延迟可能在 for 循环中???...如果是,我不这么认为,它定义在 'lb.DataSource = d'
  • 是的,可能是在调用 d(i) = i next i 时
  • 不,不能这样......通过在'lb.DataSource = d'之前和之后放置console.writelines来检查它。你会看到这是导致延迟的原因

标签: .net vb.net listbox


【解决方案1】:

您需要一个支持分页的控件,因为人类无法一次处理这么多数据(不管控件是否可以)。

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

【讨论】:

  • 你是救世主!!带有 BindingSource 的 DataGridView 不会有任何延迟。有关更多信息 - 不仅是表格,而且以我们的项目作为其第一个属性的包装对象数组也可以是有界的
猜你喜欢
  • 1970-01-01
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-18
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多