长话短说,我想这样做,如果多行文本框中的一行带有 '!' 它使线条颜色变红。否则,它仍然是黑色的。
使用 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");
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
private void button1_Click(object sender, EventArgs e)
{
FormatTextBox(richTextBox1, "!", Color.Black, Color.Red);
}
Run Code Online (Sandbox Code Playgroud)
当然,这可以通过在单个AppendText调用中使用选择或添加相同格式的文本来改进,但正如我所说,这很简单。