System.Windows.Forms.Timer Control not Firing the Tick event
Posted on 2006-11-28
I have an application that I'm running two hidden forms.
One is for displaying an option list to open door controllers via IP address and the system tray icon
The other is for receiving communication from a Windows CE-based device via sockets
I have two timers on this second form (frmVisitorCalling):
tmrWaiting - the timeout if the Receptionist does not respond to the popup in time
tmrButtonEnable - the timeout if the option buttons do not enable in time due to an unknown error
I load at startup the frmSysTray and within the New sub:
Private m_frmVisitorCalling As frmVisitorCalling
Public Sub New()
'This call is required by the Windows Form Designer.
' Create an instance of the "Visitor Calling" form as this will control it
If m_frmVisitorCalling Is Nothing Then m_frmVisitorCalling = New frmVisitorCalling
' Load a HIDDEN instance of the "Visitor Calling" form
If Not bINIUpdated And Not m_frmVisitorCalling Is Nothing Then Call m_frmVisitorCalling.LoadHidden(Me)
Within the frmVisitorCalling I have the following important functions:
Private m_bLoadHidden As Boolean
Private m_frmSysTray As frmSysTray
' Load this form, and then hide automatically
Public Sub LoadHidden(Optional ByVal frmSysTray As frmSysTray = Nothing)
If Not frmSysTray Is Nothing Then m_frmSysTray = frmSysTray
m_bLoadHidden = True
Private Sub frmVisitorCalling_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
' If loading the form hidden, make sure it is hidden asap
If m_bLoadHidden Then
m_bLoadHidden = False
Private Sub frmVisitorCalling_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
' Delete the Image file if one exists
If m_sImageFile <> "" Then
picCamera.Image = Nothing
If File.Exists(m_sImageFile) Then Call FileEx.Delete(FileEx.Extract(m_sImageFile, FileEx.g_enExtractTypes.stDirectory) & "\" & "*." & FileEx.Extract(m_sImageFile, FileEx.g_enExtractTypes.stExtension))
lblCameraNA.Visible = True
m_sImageFile = ""
' Do NOT close the form, but hide it instead
e.Cancel = True
My issue is that if I load the frmVisitorCalling at startup, it is triggering the Tick event as expected. However, when an event is raised to show I have a socket, it tries to disable the timers and then enable them again with a configurable Interval.
The Tick event now stops triggering...
Something that could cause this, is that the Socket event is raised using a class I create, and it uses threads to accept multiple connections with a client.
If I simply read in the Timer properties, the Tick event works fine, but the moment I change one of the properties (Enabled or Interval) it stops firing the trigger event.
Any ideas what could make the instance of frmVisitorCalling lose its connection with the instance of the Timer control just because I change a property?