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-Key: 181761

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

Printed on: April 19, 2024 at 12:04 o'clock

Member: steini84
steini84 Mar 11, 2012 at 23:58:30 (UTC)
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