steini84
Goto Top

BackgroundWorker ProgressChanged greift nicht auf Form zu

Umgebung:
Windows 7 Ultimate x64
Visual Basic 2010 Express

Hi,

trotz detailierter Suche im Internet bin ich mit meinem Latein doch mal am Ende.

Ich habe einen BackgroundWorker in meine Applikation eingebaut, der auch soweit gut funktioniert.
Nur scheint es ein Problem mit dem ProgressChanged-Ereignis zu geben.

Es wird auf jedenfall gefeuert und der Prozentwert wird übergeben (per Msgbox getestet).
Das einzige was nicht funktioniert, ist das aktualisieren des Toolstriplabels und der Progressbar

Code:

In Backgroundworker_DoWork:
If MainForm.Name = "frmMain" Then frmMain.BackgroundWorker.ReportProgress(20, "Verbindungsaufbau...")  

    Private Sub BackgroundWorker_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker.ProgressChanged
        Me.ProgressBar1.Value = e.ProgressPercentage
        Me.ProgressBar1.Refresh()
        Me.ToolStripStatusLabel_Status.Text = DirectCast(e.UserState, String)
        Me.Refresh()
    End Sub

MfG Steini

Content-ID: 181761

Url: https://administrator.de/contentid/181761

Ausgedruckt am: 16.11.2024 um 21:11 Uhr

steini84
steini84 12.03.2012 um 00:58:30 Uhr
Goto Top
So habe es nach noch längerem suchen im Internet doch noch gefunden.

Ganz hilfreich war dieser Beitrag: Link

'Do not access the form's BackgroundWorker reference directly.  
'Instead, use the reference provided by the sender parameter.  

Nachdem ich alles wie beschrieben geändert hatte, aktualisierten sich auch die Formelemente.

MfG steini