Private Time As New Timer
Private Sub btnWood_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWood.Click
prgWood.Value = 0
Time.Interval = 1000
Time.Start()
AddHandler Time.Tick, AddressOf IncreaseProgressBar
If prgWood.Value <> prgWood.Maximum Then
btnWood.Enabled = False
End If
Dim intAmountofWood As Integer = 11 * Rnd() + 10
intWood = intWood + intAmountofWood
Me.lblWoodAmount.Text = intWood
Private Sub IncreaseProgressBar(ByVal sender As Object, ByVal e As EventArgs)
prgWood.Increment(10)
If prgWood.Value = prgWood.Maximum Then
prgWood.Increment(0)
Time.Stop()
btnWood.Enabled = True
End If
End Sub
Für meinen Fortschrittsbalken verwende ich einen Timer, um den Wert alle 1 Sekunde um 10 zu erhöhen. Wenn ich das Projekt debugge, funktioniert es beim ersten Mal (dauert 10 Sekunden, bis der Fortschrittsbalken fertig ist), aber wenn ich den Knopf ein zweites Mal anklicke, dauert es nur 5 Sekunden, dann immer weniger. Dieser Code ist für ein inkrementelles Spiel, das ich versuche für die Schule zu machen.Fortschrittsbalken wird jedes Mal um die doppelte Geschwindigkeit erhöht
Nur fügen Sie die AddHandler entfernen, der Konstruktor. Sie fügen es jedes Mal hinzu, was bedeutet, dass Ihr Tick-Ereignis bei jedem Start mehrmals aufgerufen wird. – LarsTech
@LarsTech Vielen Dank für die Beantwortung, wie würde ich den AddHandler loswerden, während ich den Timer immer noch mit meinem Fortschrittsbalken verknüpfe? Tut mir leid, ich bin immer noch ziemlich neu in vb. –