【发布时间】:2013-10-18 00:54:27
【问题描述】:
我有一个包含大约 100 个项目的列表框,以及一个用于选择/取消选择所有项目的复选框,位于 Windows 窗体中。
当我选择所有项目时程序变慢直到循环选择了每个项目,选择所有项目需要4-5秒,选择真的很慢(我有一台好机器,我已经测试过把它改成测试项目,只是自己的Listbox控件选择项很慢)
If Not ListBox1.SelectedItems.Count = ListBox1.Items.Count Then
For item As Integer = 0 To Me.ListBox1.Items.Count - 1
ListBox1.SetSelected(item, True)
Next
End If
是否有任何技术可以改进控件上的此项选择?
我尝试在选择项目时禁用控件上的绘图,但它浪费了相同的 4-5 次来选择所有项目...
另外我不考虑创建一个新线程的选项只是为了选择一个控件的项目,原因有两个,1.更新控件需要相同的时间,2.不是很优雅创建它只是为了选择控件中的少量项目...
【问题讨论】:
-
您尝试了什么禁用列表框控件上的绘图?实际放置您尝试过的代码会很有帮助,而不是仅仅说我尝试了一些东西但它仍然很慢。
-
在我的问题上,您可以看到我现在正在使用的代码,绘制我之前测试过的东西,所以我删除了代码,因为它不起作用,我没有没有那个代码,但我只是认为禁用控件上的绘图(也禁用绘画事件)可以加速列表框的缓慢逻辑以加速项目选择。
-
这个列表框是否绑定了数据?您是否在需要一段时间的类/属性中做某事?如果是这样,您需要以某种方式加速该代码。如果没有,那么您需要一台新计算机,因为这必须是 IBM 5150,如果需要 4-5 秒。
-
不,列表框只有字符串。我已经用一个“测试”项目(一个空的 UI)对其进行了测试,请尝试将 100 个项目添加到列表框中,然后尝试使用循环来检查/取消选中所有你会看到我的意思......它需要很多秒。
标签: c# .net vb.net winforms listbox