我正在尝试使用 c# 中的应用程序中的窗口创建 GUI。我最近开始了。我在显示一些文本信息时遇到了一个问题。
我正在获取多个传感器数据,每个传感器都有名称、编号和数据。在这里,我能够将所有传感器数据放入“_sensordata”。
我能够以块颜色打印来自传感器的数据,为此,下面的代码运行良好。问题是我想为每个传感器数据设置一些条件以显示不同颜色的文本。
例如,我有一个名为“温度”的传感器。目前温度数据和温度传感器名称以方块颜色显示。现在,当温度小于“0”或大于“150”时,我想以“红色”显示值。我不知道如何显示。我对每个传感器都有相同类型的条件,那么如何实现这一点。我想以“块”颜色显示“sensorData.EngText”,如果它在范围之间,否则我需要以“红色”颜色显示(对于所有传感器)。
我有下面的富文本格式代码,所以任何人都可以建议我如何为下面代码中的文本之一添加颜色。
if (Display != null)
{ //UpdateDisplay1();
StringBuilder text = new StringBuilder();
text.Append("{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1044");
text.Append("{\\fonttbl{\\f0\\fnil Tahoma;}}");
text.Append("{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;\\red255\\green255\\blue0;}");
text.Append("\\viewkind4\\uc1\\pard");
text.Append("{\\tx100\\tx2100\\tx4100\\tx6100\\tx8100\\tx10100");
text.Append("\\tx12100\\tx14100\\tx16100\\tx18100\\tx20100}");
text.Append("\\fs20\\ql\\b");
text.Append(string.Format("\\tab {0}", e.Data.SensorName));
text.Append("\\par\\fs35\\ql\\b0");
text.Append(string.Format("\\tab {0}", e.Data.EngText));
if (Display.InvokeRequired)
{
Display.Invoke((MethodInvoker)delegate { Display.Rtf = text.ToString(); });
}
else
{
Display.Rtf = text.ToString();
}
}