我对 VB 比较陌生,我正在尝试弄清楚如何执行某个例程。我正在编写一个存档程序,其中包含一个复选框,其中填充了某个驱动器上的所有目录。当用户检查目录时,它进入一个 for 循环,该循环获取目录大小并将其显示在表单上。但是我遇到的问题是,一旦您开始选择超过 4 或 5 个,它就会变得越来越慢,因为它正在读取所有已检查的项目并验证文件大小。有没有一种方法可以让我抓住最后一个选中或未选中的项目,这样我就可以从当前大小中添加/减去?这是我当前的代码循环遍历所有选中的项目。先感谢您。
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