[英]How to display text in different colors
我正在嘗試使用Windows從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();
}
}
您無需手動構造RTF-將工作留給RichTextBox!
richTextBox.SelectionBackColor = Color.Red;
richTextBox.AppendText("Text on red background");
richTextBox.SelectionBackColor = richTextBox.BackColor;
richTextBox.AppendText("Back to regular background");
現在,richTextBox不支持許多RichText功能,例如行距-IP /為此調用的SendMessage消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.