[英]Changing color of a line in a multiline textbox if the line begins with a specific character?
長話短說,我想使之成為多行文本框中的一行帶有“!”。 它使線顏色變為紅色。 否則,它保持黑色。
用if語句聽起來很簡單,但是我似乎無法弄清楚該怎么做。 這樣的事情可能嗎?
我正在使用C#。 *澄清一下,我希望它自動執行,不需要按下按鈕。
TextBox
不支持你需要什么,你應該使用RichTextBox
。
無論如何,使用RichTextBox進行操作的最簡單方法是從中取出文本,清除內容,然后以所需的格式添加文本:
private void FormatTextBox(RichTextBox richText, string p,
Color textColor, Color highColor)
{
string[] lines = richText.Lines;
richText.Text = "";
foreach (string line in lines)
{
richText.SelectionColor = line.StartsWith(p) ? highColor : textColor;
richText.AppendText(line + "\n");
}
}
用法:
private void button1_Click(object sender, EventArgs e)
{
FormatTextBox(richTextBox1, "!", Color.Black, Color.Red);
}
當然,可以通過使用選擇或在單個AppendText
調用中添加相同格式的文本來改善這一點,但是正如我所說的那樣,這很簡單。
可能並不完美,但可以做到:
string charac = "!";
int lengthAll = richTextBox1.TextLength;
int location = richTextBox1.Find(charac);
int length = lengthAll-location;
richTextBox1.Select(location, length);
richTextBox1.SelectionColor = Color.Red;
在RichTextBox
我只寫了一些簡單的行! 在里面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.