raiseevent触发了一个“debugger.runtime.crossthreadmessagingexception”
-
14-11-2019 - |
题
我在vb.net中有一个类,它具有返回数字的方法(称为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对象的属性,而不会有任何问题。
解决方案
好的,这就是我所做的:
在表单中,我有这个要处理事件:
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