这么长的故事简短,我想这样做,如果多行文本框中的一行有生命 '!'它使线条颜色变红。否则,它仍然是黑色的。
使用if语句听起来很简单,但我似乎无法弄清楚到底要做什么。这样的事情有可能吗?
我正在使用C#。 *为了澄清,我希望它能自动完成,而不需要按下按钮。
答案 0 :(得分:4)
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
调用中添加相同格式的文本可以改善这一点,但正如我所说,这很简单。
答案 1 :(得分:1)
可能不完美,但它确实起作用:
string charac = "!";
int lengthAll = richTextBox1.TextLength;
int location = richTextBox1.Find(charac);
int length = lengthAll-location;
richTextBox1.Select(location, length);
richTextBox1.SelectionColor = Color.Red;
在RichTextBox
我刚写了一些简单的一行!在它。