0

リストボックスに項目を追加しようとすると、クロススレッドに関するエラーが発生します。この Sub は frmMain クラス内にあります。lstSells は frmMain のリストボックスです。簡単な修正が必要ですが、後で20以上の商品を検索し、大量のWebページを表示していません. 別のクラスからやろうとすると問題があると人々は言いますが、これは好きではありません。私はvb.netにかなり慣れていないので、VB6にかなり慣れているので、ここに欠けているのは簡単なことでしょうか?

Private Sub OnMessage(sender As Object, e As MessageEventArgs)

    Messages.Add(e.Data)

    lstSells.Items.Add("test")

End Sub
4

2 に答える 2

2

別のスレッドからフォームを更新しようとすると、問題が発生します。別のクラスからは必要ありません。

MSDN でデリゲートを呼び出す方法を参照してください。本当に役に立ちます。 http://msdn.microsoft.com/en-us/library/zyzhdc6b.aspx

于 2013-10-21T15:46:14.353 に答える
1

これを試して:

    If lstSells.InvokeRequired Then
        lstSells.Invoke(Sub() lstSells.Items.Add("test"))
    Else
        lstSells.Items.Add("test")
    End If
于 2013-10-21T15:44:10.323 に答える