Orakel
Erfahrenes Mitglied
Hallo zusammen
nach 7 Jahren habe ich mich doch mal wieder entschlossen mir VB.Net anzuschauen und schon beim ersten Versuch verstehe ich die Reaktion nicht.
Szenario: Auf einer Form befinden sich eine Textbox und ein Button. Der Button startet in einer Klasse einen Timer, der nach Ablauf einen Wert aus der Klasse zurückgeben soll. Das ganze Handling funktioniert auch bis auf die Tatsache, dass ich in der Handler Prozedur nicht mehr auf die Textbox zugreifen kann. Hier die verkürzten Codes
Die Form
Die Klasse
Kann mir hier evtl. einer auf die Sprünge helfen, und mir sagen wo meine Gehirnwindungen verknotet sind??
Danke
Das Orakel
nach 7 Jahren habe ich mich doch mal wieder entschlossen mir VB.Net anzuschauen und schon beim ersten Versuch verstehe ich die Reaktion nicht.
Szenario: Auf einer Form befinden sich eine Textbox und ein Button. Der Button startet in einer Klasse einen Timer, der nach Ablauf einen Wert aus der Klasse zurückgeben soll. Das ganze Handling funktioniert auch bis auf die Tatsache, dass ich in der Handler Prozedur nicht mehr auf die Textbox zugreifen kann. Hier die verkürzten Codes
Die Form
Code:
Public Class frm_Main
Private WithEvents cls_EventTest As New cEventTest
Public Sub New()
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
AddHandler cls_EventTest.TimerIsReady, AddressOf cls_EventTest_HandleEvent
End Sub
Private Sub cls_EventTest_HandleEvent( ByVal nValue As Integer ) Handles cls_EventTest.TimerIsReady
Me.txt_Output.Text = CStr( nValue ) ' Hier entsteht der Fehler
End Sub
Private Sub btn_Test_Click(sender As Object, e As EventArgs) Handles btn_Test.Click
cls_EventTest.StartTimer
End Sub
End Class
Die Klasse
Code:
Imports System.Timers
Public Class cEventTest
Private m_Timer As New System.Timers.Timer
Public Event TimerIsReady( ByVal nValue As Integer )
Public Function StartTimer()
AddHandler m_Timer.Elapsed, New ElapsedEventHandler( AddressOf Me.TimerCallback )
m_Timer.Interval = 5000
m_Timer.AutoReset = False
m_Timer.Enabled = True
End Function
Public Sub TimerCallback( ByVal oSender As Object, ByVal oEventArgs As ElapsedEventArgs )
RaiseEvent TimerIsReady( 200 )
End Sub
End Class
Kann mir hier evtl. einer auf die Sprünge helfen, und mir sagen wo meine Gehirnwindungen verknotet sind??
Danke
Das Orakel

Zuletzt bearbeitet: