串口停止输出数据时用定时器将文本框变红
Turning Textbox Red with a timer when serial port stops outputting data
我正在构建一个将串行数据读入文本框的 GUI。如果出现问题并且仪器停止工作,我希望文本框变为红色。我正在尝试使用计时器来执行此操作,因此计时器将每 30 秒读取一次数据,然后如果没有数据,计时器会将文本框变为红色。但是,当我拔下仪器时没有任何反应。如何在仪器停止工作时将文本框变为红色?
相关代码如下:
private void timer1_Tick(object sender, EventArgs e)
{
DateTime timenow = DateTime.Now;
TimeSpan span = GPSlastdatatime - timenow;
timespan = Convert.ToDouble(span.TotalSeconds);
if (timespan > 30)
{
TextBox1.BackColor = Color.Red;
}
}
我假设每当有数据进来时就设置了 "GPSlastdatatime"?
照原样,您的 "timespan" 值将是 负数。
切换减法线的顺序:
TimeSpan span = timenow - GPSlastdatatime;
顺便说一句,您可以像这样在一行中完成所有操作:
timespan = (DateTime.Now - GPSlastdatatime).TotalSeconds;
我正在构建一个将串行数据读入文本框的 GUI。如果出现问题并且仪器停止工作,我希望文本框变为红色。我正在尝试使用计时器来执行此操作,因此计时器将每 30 秒读取一次数据,然后如果没有数据,计时器会将文本框变为红色。但是,当我拔下仪器时没有任何反应。如何在仪器停止工作时将文本框变为红色?
相关代码如下:
private void timer1_Tick(object sender, EventArgs e)
{
DateTime timenow = DateTime.Now;
TimeSpan span = GPSlastdatatime - timenow;
timespan = Convert.ToDouble(span.TotalSeconds);
if (timespan > 30)
{
TextBox1.BackColor = Color.Red;
}
}
我假设每当有数据进来时就设置了 "GPSlastdatatime"?
照原样,您的 "timespan" 值将是 负数。
切换减法线的顺序:
TimeSpan span = timenow - GPSlastdatatime;
顺便说一句,您可以像这样在一行中完成所有操作:
timespan = (DateTime.Now - GPSlastdatatime).TotalSeconds;