【问题标题】:Message Box showing multiple times when progress bar complete in VB.NETVB.NET中进度条完成时多次显示消息框
【发布时间】:2014-10-08 05:17:23
【问题描述】:

我正在尝试一些进度条,但它没有正确显示弹出窗口。当我使用 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

【问题讨论】:

    标签: vb.net visual-studio-2010 progress-bar msgbox


    【解决方案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
    

    【讨论】:

    • 不要忘记将适合您的解决方案标记为答案。它可以帮助面临同样问题的其他人。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多