ich den folgenden Code renne in einem BackgroundWorker
in der DoWork
RoutineVB.Net prüfen Combobox.Text von Hintergrund Arbeiter
Dim P As String
Dim B As Integer
P = "Verifying User Inputs"
B = B + 1
If SubjectName.Text = "" Then
P = "No Subject Name Entered"
InputValidate.ReportProgress(B, P)
Threading.Thread.Sleep(250)
Else
B = B + 1
End If
If AgencyReferrer.Text = "" Or AgencyReferrer.Text = "Configure In Settings" Then
P = "No Agency Of Referrer Selected"
InputValidate.ReportProgress(B, P)
Threading.Thread.Sleep(250)
Else
B = B + 1
End If
SubjectName
ist ein Textbox
und AgencyReferrer
ist ein Combobox
.
Der Texbox
Teil des Codes abgeschlossen ist ohne Probleme, aber die Combobox
Teil sagen versagt:
Eine Ausnahme des Typs ‚System.InvalidOperationException‘ in System.Windows.Forms.dll aufgetreten war aber nicht im Benutzercode bearbeitet
Weitere Informationen: Kreuzfadenoperation nicht gültig: Steuerung 'AgencyReferrer' von einem anderen Thread als dem Thread zugegriffen wurde es war erstellt am.
Ich kann nicht verstehen, wie ein Texbox
zu einem Combobox
in Hinsicht anders behandelt wird nur überprüft, was der Text-Wert.
Irgendwelche Ideen?
Sie können Argumente an die DoWork-Methode übergeben, die in diesem Fall der Text dieser Steuerelemente sein könnte. – Plutonix
Ich sehe keinen Grund für diesen Code in einem BackgroundWorker zu sein. Wenn Sie einen BackgroundWorker verwenden, greifen Sie nicht auf die GUI-Steuerelemente zu - Sie erhalten inkonsistente Ergebnisse, die bei Ihnen auftreten. – LarsTech