2016-12-21 11 views
0
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倍でインクリメントします。

+0

からAddHandlerを削除する必要がありますコンストラクタ毎回それを追加しています。これは、Tickイベントが開始するたびに複数回呼び出されていることを意味します。 – LarsTech

+0

@LarsTech答えてくれてありがとう、どうやってAddHandlerを取り除いて、進行状況バーにタイマーを関連付けるのだろうか?申し訳ありませんが、私はまだかなりVBで新しいです。 –

答えて

0

これを行うことはできますか?

は、ここでそのサブを呼び出し、このコード

`

ProgressBar1.Value = e.ProgressPercentage 
If ProgressBar1.Value = ProgressBar1.Maximum Then 
    ProgressBar1.Value = ProgressBar1.Minimum 
End If 

`をsubを作成し、追加します。

`Private Sub btnWood_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWood.Click 

    '**Name of the Sub** 
    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 

End Sub 
` 

は、その1はLarsTechさんのコメントから

1

を動作するかどうか見てみましょう:

Public Class Form1 
    Private Time As New Timer 

    Public Sub New() 
     'Initialisation, etc 

     AddHandler Time.Tick, AddressOf IncreaseProgressBar 
    End Sub 

    'Other methods, etc 
End Class 

は、その後、あなただけに一度のAddHandlerを追加ボタン クリックイベント

関連する問題