【问题标题】:When Progressbar.value = Maximum | I Want to restart it Automatically当 Progressbar.value = 最大值 |我想自动重启
【发布时间】:2020-06-08 12:31:47
【问题描述】:

请我想在 [Progressbar.value = 最大值] 时重新启动进度条并从 1 到 10 自动重新启动,无需停止或特定时间。

这是一个代码

Private Sub Timer19_Tick(sender As Object, e As EventArgs) Handles Timer19.Tick

    ProgressBar11.Increment(1)
    If ProgressBar11.Value = 2 Then
        Label23.Text = "KxStpDvDe7JMpDVCZBppQaMHaGSKqn8W3xY4qDXMSdUKdxitFPGw"
    End If
    If ProgressBar11.Value = 3 Then
        Label23.Text = "KzZrERxAiZgbHopAxUtQ6iDb4SMxZbgyeDmoK8diYgDf32c9Byrg"
    End If
    If ProgressBar11.Value = 4 Then
        Label23.Text = "L2FytfFKWuWyKunmGgwjFMMhUWaTnJP7qtnKENqwnacGhV6Z2rJv"
    End If
    If ProgressBar11.Value = 5 Then
        Label23.Text = "L4aFy9gsK7jy1YpdUvgsKdHrtdg2H5YC8R9s7UFx9oHVzEoLjqxR"
    End If
    If ProgressBar11.Value = 6 Then
        Label23.Text = "L5UKKWBUDM4z49hU1XTAAF2DKy7ycPXDeTSvQXDGJoSeCDSDFQJ7"
    End If
    If ProgressBar11.Value = 7 Then
        Label23.Text = "L55RuiA6EVm7GSfoLLJD8853LUovn79MR9RzGrMD2xQqsJ25DVx5"
    End If
    If ProgressBar11.Value = 8 Then
        Label23.Text = "KxSTtoDS7Wm2P6fGaxEWui1CD4cm47hoNGaoz8am6akHpsghmV1z"
    End If
    If ProgressBar11.Value = 9 Then
        Label23.Text = "L2eJLnMRfUt3fQPqGPFAdzK1x4xA28e4hRCDbQA8Wiij4piNkyig"
    End If
        If ProgressBar11.Value = ProgressBar11.Maximum Then
        Timer19.Stop()
        Label23.Text = "KyHGgvC28cxP9HpAMz6fnB5AHJo4QxG7j2HpF8VN1SB3KuJE9zp1"
        Label27.Enabled = True
    End If
End Sub

【问题讨论】:

  • 发生了什么?您是否进行过调试以检查是否设置了最大值以及它是否满足您的停止条件?
  • 那就这样吧。真正的问题是什么?
  • OT,您有名为 Timer19、Progressbar11、Label23 和 Label27 的字段是一个主要问题。首先,你怎么会有 19 个Timers 和 11 个ProgressBars?其次,尝试为您的控件等提供有意义的名称。
  • 实际上,是一个大应用程序,所以我的代码中有很多计时器和进度条,所以我的问题是当进度条到达最大值时它会停止,但我想自动从零重新启动到最大值一次又一次..很多次,关于名称控件只是我复制了标签和进度条。
  • 您好,欢迎来到 Stack Overflow。如果你想连续移动进度条,有一种进度条样式叫做选框。你可以这样使用。 ProgressBar11.MarqueeAnimationSpeed = 30 ProgressBar11.Style = ProgressBarStyle.Marquee

标签: vb.net timer progress-bar


【解决方案1】:

当[Progressbar.value = 最大] 并从 1 到 10 自动重新开始,无需停止 或特定时间。

变化:

If ProgressBar11.Value = ProgressBar11.Maximum Then
    Timer19.Stop()
    Label23.Text = "KyHGgvC28cxP9HpAMz6fnB5AHJo4QxG7j2HpF8VN1SB3KuJE9zp1"
    Label27.Enabled = True
End If

收件人:

If ProgressBar11.Value = ProgressBar11.Maximum Then
    Label23.Text = "KyHGgvC28cxP9HpAMz6fnB5AHJo4QxG7j2HpF8VN1SB3KuJE9zp1"
    Label27.Enabled = True
    ProgressBar11.Value = ProgressBar11.Minimum
End If

虽然我同意其他人的观点,但您可能可以通过重构代码来简化代码。

在表单上有这么多定时器会创建大量必须处理的事件。如果这些上的间隔相当小,您的应用程序可能会变得滞后。还有其他方法可以完成多个进度条,可能是datagridview with custom drawing,并且只有一个计时器来强制数据网格视图同时更新所有“进度条”。

【讨论】:

  • 非常感谢,这对您有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-14
  • 2019-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
相关资源
最近更新 更多