Pregunta

Tengo una clase en vb.net que tiene un método (llamado CurrentValue) que devuelve un número.También hay un evento que la clase se eleva para indicar que el número ha cambiado.En el manejador de eventos en mi forma, actualizo un cuadro de texto usando el método expuesto.

tipo de así:

Public WithEvents MyClass as New CustomClass   

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

Cuando ejecuto esto, recibo un error "DEBUGGER.RUNTIME.CROSSTHREADSTEMSESSAYSEGEETE".¿Qué podría estar haciendo esto?Estoy instantáneamente a MyClass en la misma forma que contiene el cuadro de texto.

También puedo establecer propiedades del objeto MyClass sin ningún problema.

¿Fue útil?

Solución

OK, esto es lo que hice:

En el formulario, tengo esto para manejar el evento:

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

Esto parece funcionar.Gracias por la sugerencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top