Frage von beney, 31

Visual Basic 2010 express warten?

Erstmal ist das mein Programmcode: Public Class Form1

Private Sub BStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BStart.Click
    Label1.Text = "S"
    System.Threading.Thread.Sleep(1000)
    Label2.Text = "t"
    System.Threading.Thread.Sleep(1000)
    Label3.Text = "i"
    System.Threading.Thread.Sleep(1000)
    Label4.Text = "c"
    System.Threading.Thread.Sleep(1000)
    Label5.Text = "k"
    System.Threading.Thread.Sleep(1000)
    Label6.Text = "m"
    System.Threading.Thread.Sleep(1000)
    Label7.Text = "a"
    System.Threading.Thread.Sleep(1000)
    Label8.Text = "n"
    System.Threading.Thread.Sleep(1000)

End Sub

End Class

Mein Problem ist, dass es nicht, wie erwartet, nach jedem Label eine Pause von einer Sekunde macht, sondern Acht Sekunden wartet und dann alles anzeigt. Hat da jemand eine Lösung?

Antwort
von CrystalixXx, 13

Du schickst den Thread mit der Sleep-Methode in einen Wartezustand. Im diesem Zustand werden keine Windows Nachrichten verarbeitet, somit auch keine Layoutlogik.

Wenn du den Text änderst, dann muss aber das Layout des Labels aktualisiert werden, damit eine Darstellung erfolgen kann. Du kannst diesen Vorgang durch die Refresh-Methode des Labels erzwingen. Also nach jeder Textänderung einfach die Refresh-Methode aufrufen.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten