1

我正在尝试一些进度条,但它没有正确显示弹出窗口。当我使用 msgbox 时,它会出现 100 次,当我通过替换 msgbox 来使用 form2 时,即使我关闭它,它也会继续显示。

Public Class Form1
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        ProgressBar1.Increment(1)
        If ProgressBar1.Value = ProgressBar1.Maximum Then
            MsgBox("Done")
        End If
    End Sub
End Class
4

2 回答 2

1

如果您只想显示一次消息,请在消息框之前停止计时器

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

    ProgressBar1.Increment(1)
    If ProgressBar1.Value = ProgressBar1.Maximum Then
      Timer1.Stop()
      MsgBox("Done")
    End If
End Sub
于 2014-10-08T05:21:26.897 回答
0

这是因为您不是disable计时器Stop。当ProgressBar1.Value达到最大值时,消息框将显示为"Done"但计时器仍在执行,因此您将收到消息,直到计时器被禁用,因为条件If ProgressBar1.Value = ProgressBar1.Maximum Then为真。因此,如果条件为真,您需要禁用计时器。

If ProgressBar1.Value = ProgressBar1.Maximum Then
  Timer1.Enabled = False
  MsgBox("Done")
End If

或者你可以使用 Timer1.Stop()

于 2014-10-08T05:32:32.023 回答