【问题标题】:Continuously updating label color不断更新标签颜色
【发布时间】:2021-11-09 12:56:09
【问题描述】:

我正在展示是否有人通过 Always-On 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;    
        }

提前致谢!

【问题讨论】:

    标签: c# colors label


    【解决方案1】:

    也许这个函数只在应用程序启动时被调用一次。可能需要使用计时器在一定时间内尝试此过程。

    aTimer = new System.Timers.Timer();
    aTimer.Interval = 500; //doing a check every half second
    aTimer.Elapsed += CheckForVPNInterface;
    

    aTimer.Elapsed += CheckForVPNInterface;此代码将每半秒自动运行一次。

    但我不建议将此操作称为异步。会有错误。这将需要在代码中的某些地方进行更改。为此,您需要调用它应该在 UI 小部件中工作的位置。

    【讨论】:

    • 感谢您的评论!我不太确定如何实现这一点 - 你能尝试更详细一点吗?
    • @MadsBrockmannJuhl 你的项目到底是什么?我需要完整的答案以获得详细的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多