【发布时间】:2014-07-19 16:52:35
【问题描述】:
我希望在单击按钮时打开另一个带有进度条的表单。到目前为止,执行冻结了几秒钟,然后进度条表单打开,进度条已满,然后关闭。我希望主窗体暂停执行,以便在进度条完成操作之前不会写入文件。这是我的代码:
主类:
Private Sub btnWriteFile_Click(sender As Object, e As EventArgs) Handles btnWriteFile.Click
If hasUserEnteredFileName() = True Then 'don't worry about this
If reversedString IsNot Nothing Then 'or this
FileWriting.Show() 'the progress bar class
Dim sw As StreamWriter = File.CreateText(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\" & fileName.Text & ".txt")
sw.Write(reversedString)
sw.Flush()
sw.Close()
End If
End If
End Sub
进度条类:
Private Sub FileWriting_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ProgressBar1.Minimum = 1
ProgressBar1.Maximum = 100
For i = ProgressBar1.Minimum To ProgressBar1.Maximum - 2
Sleep(10)
ProgressBar1.Value += 2
ProgressBar1.Value -= 1
Next i
End Sub
【问题讨论】:
-
您的进度条确实显示了任何事情的进度。删除 Sleep 语句,它没有理由存在。写一行文字的进度当然不用汇报
-
我知道它实际上并没有做任何事情,它只是一个美学特征。
-
在 MSDN 中用于 Form.Load 在第一次显示表单之前发生。其中的一部分您的代码无法在文件显示时显示进度状态写好了,这两个操作依次执行
-
为什么无所事事的进度条一定要换新的形式?把它放在当前表单上,让它在那里什么都不做。
-
别费心回复,你没有解决它。
标签: vb.net visual-studio-2010 file-io progress-bar sleep