0

我在 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 对象的属性。

4

1 回答 1

0

好的,这就是我所做的:

在表单中,我有这个来处理事件:

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

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

于 2011-03-29T19:42:55.677 回答