Zdarzenie zegara Tick wystrzelony przed Form_Load Event (VB.NET)
Mam formularz Windows ze składnikiem Timer, domyślnie (projekt) timer jest włączony, ale na podstawie niektórych argumentów wysłanych do formularza wyłączam timer na form_load.
Stoję przed bardzo dziwnym scenariuszem, zdarzenie Timer_Tick jest czasami uruchamiane jeszcze przed uruchomieniem form_load, co ma miejsce w przypadku aplikacji zminimalizowanej na przykład na 20 minut, a następnie otwieram aplikację i próbuję otworzyć nowy formularz, szczególnie na wolnych systemach .
Kod w następujący sposób:
'=============== Code of the form with Timer
Public Sub OpenForm(SomeParams)
'Set Form Properties
Me.Show() 'Here the event Form_Load fired
End Sub
Private Sub Form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'Some Code ...
Timer1.Enabled = False/ True 'Based True or false based on parameters
'Code ...
End Sub
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
'Code here
'The code raise error if form load is not fired, because need info from params ...
End Sub
'=============== Code in the calling form (MainForm)
'Calling the Form
dim obj As new Form1 'I think form this line the Timer1_Tick Fired, before load
obj.OpenForm(Params)
Gdy zgłoszony wyjątek zostanie zamknięty, zamykam obsługiwany wyjątek i próbuję ponownie otworzyć formularz, otwierając formularz z Timer1 jest wyłączony.
Wiem, że rozwiązanie jest trywialne, po prostu wyłącz zegar domyślnie, a następnie włącz go w oparciu o parametry, ale chcę wiedzieć, DLACZEGO Timer1_Tick kiedyś jest uruchamiany przed OpenForm Sub i Before Form1_Load Sub !! ?
Wielkie dzięki za twój czas. Sameh