需求:針對多文本信息顯示,咱們須要對其內容中的某些關鍵字或者某行進行高亮顯示,並用不一樣顏色顯示。this
分析:在C#中,首先要進行多文本信息顯示,能夠RichTextBox(不要使用TextBox)控件,該控件由自動換行等功能,具體代碼以下:spa
/// <summary> /// 向RichTextBox控件中添加數據 /// </summary> /// <param name="strLineLie">要顯示的數據列表,有多少條,就添加多少行</param> private void UpdateRichTextBox(List<string> strLineLie) { if (strLineLie.Count == 0) { richTextBox1.AppendText("\n\nNo Input Record Content!"); richTextBox1.SelectAll(); richTextBox1.SelectionAlignment = HorizontalAlignment.Center; richTextBox1.SelectionFont = new System.Drawing.Font(richTextBox1.Font.FontFamily, 11.0f, FontStyle.Italic); richTextBox1.SelectionColor = Color.Gray; return; } //對文本設置對應關鍵字高亮顯示 int index = 0; foreach (string input in strLineLie) { string inputStr = input + "\n"; this.richTextBox1.AppendText(inputStr); if (input.StartsWith("*"))//註釋 { richTextBox1.Select(index, inputStr.Length); richTextBox1.SelectionColor = Color.Green; } else //當行數據類型高亮 { if (input.Split(' ')[0].Length != 0)//每行數據中第一個空格前的關鍵字高亮 { richTextBox1.Select(index, input.Split(' ')[0].Length); richTextBox1.SelectionColor = Color.Blue; } } index += inputStr.Length; } //設置無效(必填)值高亮顯示 HighText("Unknown|Unspecified", this.richTextBox1.Text); } /// <summary> /// 搜索關鍵字高亮顯示 /// </summary> /// <param name="keyStrs"></param> /// <param name="text"></param> private void HighText(string keyStrs,string text) { foreach (string keyStr in keyStrs.Split('|')) { int start = 0, end = text.Length; int index = richTextBox1.Find(keyStr, start, end, RichTextBoxFinds.None); while (index != -1) { richTextBox1.SelectionFont = new System.Drawing.Font(richTextBox1.SelectionFont, FontStyle.Underline); richTextBox1.SelectionColor = Color.Red; start = index + keyStr.Length; index = richTextBox1.Find(keyStr, start, end, RichTextBoxFinds.None); } } }
效果以下:code