RaiseEventは "debugger.runtime.CrosSthreadMessagingException"をトリガーします。
-
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
.
これはうまくいきます。提案をありがとう。
所属していません StackOverflow