In response to a "Cross-thread operation not valid: Control 'RecordAddedTextBox' accessed from a thread other than the one it was created on." error I have added a routine obtained from Microsoft Help and that is giving me a compile error.
This is my original code:
And this is the code which I added:Code:Private Sub foo(ByVal tbx As Object) 'when this code was in the Enter event handler the cursor was 'not visible until the sounds played. Dim tb As TextBox = DirectCast(tbx, TextBox) Select Case tbx.name Case "NameTextBox" speaker.Speak("Name") Case "RecordAddedDateTextBox" Me.RecordAddedDateTextBox.Text = Now() <-- ERROR HERE Case "ConversationTextBox" speaker.Speak("Conversation") End Select Threading.Thread.Sleep(250) End Sub
presumably to be called from my subroutine. But SetTextCallback comes up as undefined. Since this is a strange to me I don't know how to fix it. I was hoping someone could help me and save my hours of trial and error. Is there a better way?Code:Private Sub SetText(ByVal [text] As String) ' InvokeRequired required compares the thread ID of the ' calling thread to the thread ID of the creating thread. ' If these threads are different, it returns true. If Me.RecordAddedDateTextBox.InvokeRequired Then Dim d As New SetTextCallback(AddressOf SetText) Me.Invoke(d, New Object() {[text]}) Else Me.RecordAddedDateTextBox.Text = [text] End If End Sub
Of course there is more code involved which calls the subroutine with the error and I can post that if needed.


Reply With Quote
