c# - ping 响应失败时更改按钮背景颜色
问题描述
在我的应用程序中,我有一个按钮,显示网络中接入点的状态。启动应用时按钮的背景是绿色的,但是断开AP时按钮保持绿色而不是变为红色?
这是我目前使用的代码:
Ping p = new Ping();
PingReply r;
string s;
s = "192.168.0.8";
r = p.Send(s);
if (r.Status == IPStatus.Success)
{
button1.BackColor = Color.Green;
}
else if (r.Status == IPStatus.TimedOut)
{
button1.BackColor = Color.Red;
}
当我输入无响应的 IP 地址并启动应用程序时,按钮背景保持默认颜色(灰色)
不知道我哪里出错了?
解决方案
您的代码中的问题是 IPStatus 大部分时间都不是 TimedOut 。
在本地测试时,我得到了 IPStatus.DestinationHostUnreachable,因此您需要将代码更改为:
else if (r.Status == IPStatus.DestinationHostUnreachable)
{
button1.BackColor = Color.Red;
}
但我强烈建议删除第二个 else if 并用 else 替换它,以便在主机无法访问时将颜色设置为红色,无论出于何种原因。
推荐阅读
- list - Prolog 谓词将两个列表相乘(表示一元数)
- python - 打印以字符串开头的行
- sql - 每个特定类型文档的 N1QL 查询计数
- r - 如何解决加载“Tidyverse”和“dplyr”的问题
- java - 使用乘数转换 Java 字符串中的值
- vb.net - 刚刚通过 WiFi 连接的 MS Access 数据库发生 System.AccessViolationException
- javascript - 我怎样才能拥有一个时刻对象但无法访问任何方法?
- c# - Unity3D:下载多个文件并实现回调
- javascript - 使用谷歌应用脚本 HTML 将文件上传到谷歌驱动器
- android - APK 未使用上传证书签名