Private Delegate Sub StringDelegateChat(text As String, window As ChatWindow)
Private Sub AppendTextChatWindows(text As String, window As ChatWindow)
Try
If window.RichTextBox1.InvokeRequired Then
window.Invoke(New StringDelegateChat(AddressOf AppendTextChatWindows), text, window)
Else
window.RichTextBox1.AppendText(text)
window.RichTextBox1.SelectionStart = window.RichTextBox1.Text.Length
window.RichTextBox1.ScrollToCaret()
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
しかし、私は、クロススレッド操作有効でないエラーを取得し、私はそれがこれを行うと思いますこれはif文の一部であるwindow.invoke
が欠落しているためです。私もIf window.RichTextBox1.InvokeRequired Then
をIf InvokeRequired Then
に置き換えようとしましたが、continueループで捕捉され、スタックオーバーフローエラーがスローされます。私は信じて
おかげ Houlahan
既に試みましたwindow.Invoke window.RichTextBox1.InvokeRequiredの代わりに? –
elseをスキップして例外をトローすると、/ – Houlahan
コントロールハンドルが作成されたことは間違いありませんか?もしあなたがいても、それはダブルチェックを傷つけることはありません... – jmoreno