Vb.net 在VB中动态更新进度条

Vb.net 在VB中动态更新进度条,vb.net,windows,visual-studio,Vb.net,Windows,Visual Studio,您好,我是一个新手/平庸的VB程序员,我制作了一个计时器,只需要每秒自我更新 我开始怀疑天气是否正常,所以我在计时器代码上加了一个消息框,它每秒钟都会自动更新,但进度条不会?为什么? Dim power As PowerStatus = SystemInformation.PowerStatus Dim percent As Single = power.BatteryLifePercent Private Sub Timer1_Tick(sender As Object, e As E

您好,我是一个新手/平庸的VB程序员,我制作了一个计时器,只需要每秒自我更新

我开始怀疑天气是否正常,所以我在计时器代码上加了一个消息框,它每秒钟都会自动更新,但进度条不会?为什么?

Dim power As PowerStatus = SystemInformation.PowerStatus
Dim percent As Single = power.BatteryLifePercent
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer.Tick
    ProgressBar1.Value = percent * 100
    Label1.Text = percent * 100
End Sub

我有一个电源状态和百分比,它将状态转换为可用百分比,然后进度条使用该百分比,但没有像msgBOX那样更新。为什么?

嗯,您的计时器可能工作正常,但是,您不会显示从何处/如何获得
SystemInformation.PowerStatus.BatteryLifePercent
的更新值


也许您在代码的其他地方执行此操作,但在发布时,您总是显示相同的值,因此当然progressbar永远不会更改。

从您的问题中我可以看到,一切都应该正常工作,但我看不到您添加了
Timer1.Interval=1000
,但是您可能有,但这是设计师而不是编码方面的,但是这里是我如何完成此项目的,因此您可以看到我的工作示例,以便您可以确定,如果您有任何问题,请告诉我,我将尽力帮助您:)

我在表单中添加了一个Progressbar和两个标签,其中一个是计算机电池,另一个会告诉用户电缆是否已拔出。我知道您没有询问电缆状态,但我添加了它,以备需要:)
快乐编码

尝试添加
ProgressBar1。设置值后刷新
,使其重新绘制代码按发布的方式工作。OP希望每秒运行一次,因此时间间隔为
Timer1.Interval=1000
。您应该重写OnLoad方法,而不是处理表单事件,并且您的Tick方法应该包括正确的参数。
Public Class Form1
Dim Timer1 As New Timer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Timer1.Enabled = True
    Timer1.Interval = 1000
    AddHandler Timer1.Tick, AddressOf Timer1_Tick
    Timer1.Start()
End Sub

Private Sub Timer1_Tick()
    Dim POWER As PowerStatus = SystemInformation.PowerStatus
    Dim PERCENT As Single = POWER.BatteryLifePercent
    Dim ONCHARGE As PowerStatus = SystemInformation.PowerStatus
    ProgressBar1.Value = PERCENT * 100
    Label1.Text = "Power Remaining: " & PERCENT * 100 & "%"
    If ONCHARGE.PowerLineStatus = PowerLineStatus.Online Then
        Label2.Text = "Currently: Charging"
    Else
        Label2.Text = "Currently: Not Charging"
    End If
    End Sub
    End Class