In my application, I have two text boxes accompanied with two labels: “Connected” and “Not Connected”. As seen in my code, if a connection is established, the “Connected” text box will fill with Green, indicating a network connection. It will be red if not.
The functionality of connection detection is working just fine, however, I have to re-open the application for it to detect the change. I am looking for a way to refresh the application every 5-10 seconds or so automatically to detect any change in connectivity. I don’t want to flush out the contents of any other field or box, just the color text boxes. A soft polling loop so to speak. How would I go about doing this using the Timer method. Should I create a new thread in which to run the timer and refresh the box?
Thanks.
if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() == false)
{
noConnect.Select(); //if not connected, turn box red
noConnect.BackColor = Color.Red;
}
else
{
netConnect.Select(); // if connected, turn box green
netConnect.BackColor = Color.Lime;
}
//need to refresh box/application without losing other box/field contents
//in order to constantly check connectivity around 5-10 seconds or so
//constantly check connectivity
Something like this would work
The timer_Tick would be repeatedly called every interval and you can poll your status and update controls. Because the timer call back is called in the UI-thread you can update any UI elements.
From Timer Class
This solution uses
System.Windows.Forms.Timerthat calls the tick on UI-thread. If you useSystem.Timers.Timerthe callback won’t be on UI-thread.