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
私の進行状況バーでは、1秒ごとに値を10ずつ増やします。私はプロジェクトをデバッグするときに、最初に(プログレスバーが完了するまでに10秒かかる)うまく動作しますが、2回目のボタンをクリックすると、毎回5秒しかかかりません。このコードは私が学校にしようとしているインクリメンタルゲーム用です。プログレスバーは、毎回意図したスピードの2倍でインクリメントします。
から
AddHandler
を削除する必要がありますコンストラクタ毎回それを追加しています。これは、Tickイベントが開始するたびに複数回呼び出されていることを意味します。 – LarsTech@LarsTech答えてくれてありがとう、どうやってAddHandlerを取り除いて、進行状況バーにタイマーを関連付けるのだろうか?申し訳ありませんが、私はまだかなりVBで新しいです。 –