我在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
.

这似乎有效。谢谢你的建议。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top