我对VB非常陌生,我想弄清楚我该如何做一些特定的例程。我正在编写一个归档程序,该程序的某个驱动器上的所有目录都有一个清单框。当用户检查目录时,它会进入for循环,获取目录大小并将其显示在表单上。但是我遇到的问题是,一旦你开始选择超过4或5,它会越来越慢,因为它正在读取所有checkeditems并使用它来验证文件大小。有没有一种方法可以让我抓住最后一项选中或取消选中,这样我就可以从当前的大小加上/减去?这是我目前的代码循环所有检查的项目。先谢谢你。folderbrowserdialog检查空间
Dim fsize As Long = 0
Private Sub chklstbxWorkspace_SelectedIndexChanged(sender As Object, e As EventArgs) Handles chklstbxWorkspace.SelectedIndexChanged
Dim entry As Object
If chklstbxWorkspace.CheckedIndices.Count > 0 Then
btnStartArchive.Enabled = True
Else
btnStartArchive.Enabled = False
End If
lblWorkspaceSize.Text = chklstbxWorkspace.CheckedIndices.Count.ToString & " folders selected."
For Each entry In chklstbxWorkspace.CheckedItems
fsize += DirectorySize("w:\" & entry.ToString, True)
lblWorkspaceSize.Text = chklstbxWorkspace.CheckedIndices.Count.ToString & " folders selected. " & Format(fsize, "###,###,###,###,##0") & " bytes."
Next
Application.DoEvents()
End Sub
非常感谢。过去我使用过字典,但从未考虑过使用字典。 – user2202347 2013-04-05 18:28:30