2011-03-29 45 views
0

我有一個VB.NET類,有一個方法(稱爲CurrentValue),返回一個數字。還有一個事件,班級提出,以表明數量已經改變。在我的表單上的事件處理程序中,我使用公開的方法更新文本框。RaiseEvent觸發一個「Debugger.Runtime.CrossThreadMessagingException」

排序是這樣的:

Public WithEvents MyClass as New CustomClass 

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

當我運行此我得到一個 「Debugger.Runtime.CrossThreadMessagingException」 的錯誤。有什麼可以做到這一點?我使用包含文本框的相同形式實例化MyClass。

我也可以毫無困難地設置MyClass對象的屬性。

回答

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 

這似乎是工作。感謝您的建議。

+1

是的,看到答案後顯然。 – 2011-03-29 19:47:13

+0

我只是發佈它,讓其他人可以看到解決方案,聰明的人。 – 2011-03-29 20:22:46

+1

感謝讚美:) – 2011-03-29 20:30:12