在第一个listProcess.items.add之后,listProcess列表框不会刷新。基本上,只需在复制目录时从另一个列表框中填充一个列表框。只是试图显示正在进行的副本的状态。这些刷新似乎都不起作用。这太简单了,难以理解我。提前谢谢。
While ix < listSaveFolders.Items.Count
listProcess.Items.Add(listSaveFolders.Items.Item(ix))
listprocess.refresh
Me.Refresh()
My.Computer.FileSystem.CopyDirectory(CStr(listSaveFolders.Items.Item(ix)), bk_dir_top & get_folder_end(ix), True)
End While
答案 0 :(得分:0)
没有条件状态变化的While循环?
While ix < listSaveFolders.Items.Count
listProcess.Items.Add(listSaveFolders.Items.Item(ix))
'listprocess.Refresh()
'Me.Refresh()
My.Computer.FileSystem.CopyDirectory(CStr(listSaveFolders.Items.Item(ix)), bk_dir_top & get_folder_end(ix), True)
ix = ix + 1 ' <- here !
' I've disabled the .Refresh() but you can put back one of them
' here if you want.
End While
编辑:恢复待处理的编辑。真的没有被唤醒。遗憾。
答案 1 :(得分:0)
您可以使用 Application.DoEvents 代替Me.Refresh
或listProcess.Refresh
,这会在您添加新项目后更新/刷新ListBox。
如果您正在寻找更多&#34;复杂的&#34;解决方案,请查看BackgroundWorker和this question。
此外,您还没有更新ix
变量,从而创建了无限循环。