2016-08-05 7 views
0

gestartet Nur Visual Basic lernen ..Verwenden von Schleifen zum Ändern des Etikettentextes mit Tastenklicks?

Dies funktioniert, wenn Schleifen mit: Box-Nachrichten bis

fertig Pop-up
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 

Wenn ich es auf dem Etikett Text verwenden möchten es die endgültige Ausgabe mit einem Klick gibt

Label2.Text = ("The value of i is: " & i) 

Wie kann ich es Schleife nur auf Knopfdruck machen? Muss ich Aussagen hinzufügen?

Antwort

0

Die Schleife ist zu schnell und die Benutzeroberfläche wird nur aktualisiert, wenn alles im Ereignis abgeschlossen ist. Sie können der Schleife (Thread) Verzögerungen hinzufügen und das Aktualisieren der Benutzeroberfläche erzwingen.

Dim d = 1 

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

Hier Thread.Sleep(1000) erzeugt eine Verzögerung, die durch die aktuell laufenden thread pausieren. Der Wert ist in Millisekunden. Me.Refresh() erzwingt das Neuzeichnen des Formulars.

Dies ist nicht die empfohlene Art der Behandlung des Problems, aber es funktioniert.

0

Wie kann ich es Schleife nur auf Knopfdruck machen? Muss ich hinzufügen, wenn Aussagen?

Sicher ... Sie könnten Ihre Erklärung von „d“ Dim-Static ändern, dann eine If Anweisung wie folgt verwendet werden:

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 
Verwandte Themen