2016-08-05 6 views
0

ただのVisual Basicを学び始めた...ループを使用する場合ループを使用してボタンのクリックでラベルテキストを変更しますか?

これは動作します:

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 

    Dim d As Integer = 1 

    Do While d < 5 

     MessageBox.Show("Value: " & d) 
     d = d + 1 

    Loop 

End Sub 

を終了するまで、私はそれがワンクリック

との最終的な出力を与えるラベルテキストの上にそれを使用したい場合はボックスのメッセージがポップアップ
Label2.Text = ("The value of i is: " & i) 

ボタンをクリックするだけでどのようにループすることができますか? if文を追加する必要がありますか?

答えて

0

ループが速すぎるため、イベントのすべてが終了したときにのみUIが更新されます。ループ(スレッド)に遅延を追加し、強制的にUIをリフレッシュすることができます。ここで

Dim d = 1 

    Do While d < 5 
     Label1.Text = ("The value of i is: " & d) 
     d = d + 1 
     Thread.Sleep(1000) 
     Me.Refresh() 
    Loop 

Thread.Sleep(1000)は、現在実行中のthreadを一時停止することで遅延を作成します。値はミリ秒です。 Me.Refresh()は、フォームを強制的に再描画します。

これは、問題を処理する推奨方法ではありませんが、機能します。

0

ボタンをクリックするだけでどのようにループすることができますか? の文を追加する必要がありますか?

確かに...あなたはこのようIfステートメントを使用し、その後、StaticDimから "D" のあなたの宣言を変更することができます:

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 
    Static d As Integer = 1 

    If d < 5 Then 
     Label2.Text = "The value of `d` is: " & d.ToString 
     d = d + 1 
    End If 
End Sub 
関連する問題