簡體   English   中英

如果一行以特定字符開頭,則更改多行文本框中的一行顏色?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM