Вопрос

У меня есть класс в VB.NET, который имеет метод (называемый currentValue), который возвращает номер.Существует также событие, которое класс поднимает, чтобы указать, что номер изменился.В обработчике событий в моем виде я обновляю текстовое поле, используя открытый метод.

Как это нравится:

Public WithEvents MyClass as New CustomClass   

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

Когда я запускаю это, я получаю сообщение «Debugger.runtime.CrossthreadMessageException».Что может сделать это?Я создал 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