2016-07-16 7 views
0

Cross-Thread-Operation nicht gültig: Steuerfeld, auf das von einem anderen Thread als dem Thread zugegriffen wurde, auf dem es erstellt wurde. vb.netWie kann ich diesen Cross Thread Fehler lösen?

Sub autocompletepayee() 

    Dim cmd2 As New Odbc.OdbcCommand 
    Dim dr As Odbc.OdbcDataReader 
    Dim myquery As String 
    myquery = "select payee from tbrequest" 
    cmd2.CommandText = myquery 
    cmd2.Connection = con 
    dr = cmd2.ExecuteReader 

    While dr.Read 
     txtPayee.AutoCompleteCustomSource.Add(dr.GetString(0)) 'this is the line where the error prompt 

    End While 
    dr.Close() 
+0

Sehen Sie diese [link] (http://stackoverflow.com/questions/1331009/cross-thread-operation-nicht-gültig-vb-net). – Han

Antwort

0

Dies sollte funktionieren, wenn es kürzer sein könnte, wenn mehr über bekannt waren, wo der Code befand

Dim cmd2 As New Odbc.OdbcCommand 
    Dim dr As Odbc.OdbcDataReader 
    Dim myquery As String 
    myquery = "select payee from tbrequest" 
    cmd2.CommandText = myquery 
    cmd2.Connection = con 
    dr = cmd2.ExecuteReader 

    While dr.Read 
     If txtPayee.InvokeRequired Then 
      txtPayee.Invoke(Sub() 
           txtPayee.AutoCompleteCustomSource.Add(dr.GetString(0)) 'this is the line where the error prompt 
          End Sub) 
     Else 
      txtPayee.AutoCompleteCustomSource.Add(dr.GetString(0)) 'this is the line where the error prompt 
     End If 

    End While 
    dr.Close() 
Verwandte Themen