winforms 更改标签c#的函数ping

zed5wv10  于 2022-11-16  发布在  C#
关注(0)|答案(2)|浏览(144)

伙计们,我有这个功能,检查是否有任何开关离线,但我有24个开关在公司,我的工作,所以我做了一个功能,每个Ip,如果ping返回“成功”的标签颜色改变为绿色,如果不改变为红色...
所以我传递了一个参数,比如ping 1(“123.45.67.899”);但我想传递标签的值来更改颜色...
任何人都可以帮助我吗?目前我做了24 ping功能,我更改了标签的名称,从25到49

public void ping1(string ip)
        {
            Ping ping = new Ping();
            PingReply reply = ping.Send(ip, 100);

            if (reply.Status.ToString() == "Success")
            {

                label25.BackColor = Color.LightGreen;
            }
            else
            {
                label25.BackColor = Color.Red;
            }
        }
unftdfkk

unftdfkk1#

我错误地将标签声明为字符串,标签必须为Label

public void ping0(string ip, Label lab)
        {
            Ping ping = new Ping();
            PingReply reply = ping.Send(ip, 100);

            if (reply.Status.ToString() == "Success")
            {

                lab.BackColor = Color.LightGreen;
            }
            else
            {
                lab.BackColor = Color.Red;
            }
        }
    ```
i34xakig

i34xakig2#

如果你使用一个单独的类来调用你问题中的原始函数,它将不会工作,因为label25没有在该类中初始化。如果你把代码片段放在所有标签初始化的同一个类中(也就是带有标签的窗体的.cs文件),你可以这样写。
前面您说您至少有40个标签,所以这样做会容易得多,而不是多次调用该方法。

public static void ping3(string ip)
        {
            Ping ping = new Ping();
            PingReply reply = ping.Send(ip, 100);

            if (reply.Status.ToString() == "Success")
            {

                label25.BackColor = Color.LightGreen;
                label26.BackColor = Color.LightGreen;
                // all other labels, it goes on.
            }
            else
            {
                label25.BackColor = Color.Red;
                label26.BackColor = Color.Red;
                // all other labels, it goes on.
            }
        }

您发布的其他代码也可以工作,但这似乎在此上下文中最有意义。

相关问题