我對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