RaiseEventは "debugger.runtime.CrosSthreadMessagingException"をトリガーします。

StackOverflow https://stackoverflow.com/questions/5477208

  •  14-11-2019
  •  | 
  •  

質問

私はvb.netにクラスを持っています(currentValueと呼び)、数字を返すメソッド(currentValueと呼びます)があります。数が変更されたことを示すためにクラスが発生するイベントもあります。私の形式のイベントハンドラで、私は公開されたメソッドを使用してテキストボックスを更新します。

ソートこのようなもの:

Public WithEvents MyClass as New CustomClass   

Private Sub MyClass_DataChanged() Handles MyClass.DataChanged
    Text1.Text = MyClass.CurrentValue
End Sub
.

これを実行すると、 "debugger.runtime.CrosSthreadMessagingException"エラーが発生します。何をする可能性がありますか?テキストボックスを含む同じ形式でMyClassをインスタンス化しています。

トラブルなしでMyClassオブジェクトのプロパティを設定することもできます。

役に立ちましたか?

解決

OK、ここに私がしたことです:

イベントを処理するためにこれを持っている形式で:

Public Delegate Sub MyClassDataChangedDelegate()
Sub MyClassDataChanged() Handles MyClass.DataChanged
    If Me.InvokeRequired Then
        Me.Invoke(New MyClassDataChangedDelegate(AddressOf MyClassDataChanged))
    Else
        Me.Text1.Text = MyClass.CurrentValue
    End If
End Sub
.

これはうまくいきます。提案をありがとう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top