The problem is that Forms timers run on the UI. To fix...
First, make sure Timer1 is enabled and that the Interval is set to 60000. That will take care of the code running once every 60 seconds. Then get rid of all the GoTo's and code labels. The example you posted will look like this then,
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Dim sString As String
Dim strIPAddress As String
Dim strhostname As String
Dim Prefix As String
strhostname = System.Net.Dns.GetHostName()
strIPAddress = System.Net.Dns.GetHostByName(strhostname).AddressList(0).ToString()
lblIPAddress.Text = "IP Address: " & strIPAddress
Try
Prefix = strhostname.Substring(0, 3)
'Check the IP address of the local machine
Dim ipArray() As String = Split(strIPAddress, ".")
If ipArray(1) = "44" And ipArray(2) = "10" Then
LblStatus.Text = "Your PC is updating, please wait......."
LblShip.Text = "This PC is in the Office"
Using sr As New StreamReader("\\bm-filesrv\Timesync$\timezone.ini")
sString = sr.ReadToEnd()
End Using
Else
Try
LblShip.ForeColor = Color.Red
LblStatus.ForeColor = Color.Red
LblShip.Text = "Unable to identify ___location"
LblStatus.Text = "check IP address!"
Catch ex As Exception
LblStatus.Text = (ex.Message)
End Try
End If
Catch
End Try
End Sub