Label zichtbaar maken/updaten tijdens laad acties op form

Status
Niet open voor verdere reacties.

harolda1980

Gebruiker
Lid geworden
7 aug 2007
Berichten
488
Ik ben met een applicatie bezig, die op het inlogscherm van alles aan het laden is. Maar in de tussen tijd wil ik laten zien middels een label welke actie hij aan het uitvoeren is.
Hoe kan ik zorgen dat dit label goed zichtbaar word tijdens het laden. waarin telkens verschillende teksten getoond worden.
 
Beetje afhankelijk van hoe je het aan wil pakken en wat de structuur is van je programma,

Je kunt gebruik maken van een aparte thread die de informatie behandeld en via call-backs informatie teruggeeft om je scherm updates te geven.
 
Edit: toch wat tijd gevonden

Maak een windows form project met enkel een label en een button. Plak het volgende in de projectcode (klik form aan en druk op f7):

Code:
Imports System.Threading
Imports System.IO


Public Class Form1
    Delegate Sub UpdateLabel(ByRef change As String)

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        ThreadPool.QueueUserWorkItem(AddressOf test)
    End Sub

    Sub test()
        DoDir("C:\\")
    End Sub

    Sub DoDir(path As String)
        Try
            Dim di As DirectoryInfo = New DirectoryInfo(path)
            Dim directories() As DirectoryInfo = di.GetDirectories("*")
            For Each dirloop In directories
                Label1.Invoke(New UpdateLabel(AddressOf InvokeUpdateLabel), dirloop.FullName)
                DoDir(dirloop.FullName)
            Next dirloop
        Catch
        End Try

    End Sub

    Sub InvokeUpdateLabel(ByRef change As String)
        Label1.Text = change
    End Sub

End Class

Het toont alle subdirectories op je C-schijf asynchroon terwijl je hoofdscherm volledig beschikbaar blijft.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan