持续更新标签颜色
Continuously updating label color
我正在展示是否有人通过永远在线的 VPN 连接 - 绿色 = 已连接,红色 = 断开连接。
但是,这仅在应用程序启动时有效,我希望它能够不断更新标签的颜色,如果它突然断开连接并且当您再次连接它时
代码如下:
public bool CheckForVPNInterface()
{
if (NetworkInterface.GetIsNetworkAvailable())
{
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface networkInterfaces in interfaces)
{
if (networkInterfaces.Description.Contains("Always-On VPN") && networkInterfaces.OperationalStatus == OperationalStatus.Up)
{
Label_Connection.BackColor = Color.Green;
Button_ConnectVPN.Text = "Disconnect";
return true;
}
else
{
Label_Connection.BackColor = Color.Red;
Button_ConnectVPN.Text = "Connect";
}
}
}
return false;
}
提前致谢!
也许这个函数只在应用程序启动时被调用一次。可能需要使用计时器在一定时间内尝试此过程。
aTimer = new System.Timers.Timer();
aTimer.Interval = 500; //doing a check every half second
aTimer.Elapsed += CheckForVPNInterface;
aTimer.Elapsed += CheckForVPNInterface;
此代码将每半秒自动 运行。
但我不建议将此操作称为异步操作。会有错误。这将需要更改代码中的某些地方。为此,您需要在 UI 小部件中调用它应该工作的位置。
我正在展示是否有人通过永远在线的 VPN 连接 - 绿色 = 已连接,红色 = 断开连接。 但是,这仅在应用程序启动时有效,我希望它能够不断更新标签的颜色,如果它突然断开连接并且当您再次连接它时
代码如下:
public bool CheckForVPNInterface()
{
if (NetworkInterface.GetIsNetworkAvailable())
{
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface networkInterfaces in interfaces)
{
if (networkInterfaces.Description.Contains("Always-On VPN") && networkInterfaces.OperationalStatus == OperationalStatus.Up)
{
Label_Connection.BackColor = Color.Green;
Button_ConnectVPN.Text = "Disconnect";
return true;
}
else
{
Label_Connection.BackColor = Color.Red;
Button_ConnectVPN.Text = "Connect";
}
}
}
return false;
}
提前致谢!
也许这个函数只在应用程序启动时被调用一次。可能需要使用计时器在一定时间内尝试此过程。
aTimer = new System.Timers.Timer();
aTimer.Interval = 500; //doing a check every half second
aTimer.Elapsed += CheckForVPNInterface;
aTimer.Elapsed += CheckForVPNInterface;
此代码将每半秒自动 运行。
但我不建议将此操作称为异步操作。会有错误。这将需要更改代码中的某些地方。为此,您需要在 UI 小部件中调用它应该工作的位置。