我想在文本框中以 2 种颜色显示文本,例如 1 行红色 2 蓝色,如果我使用name.ForeColor = Color.Red;
所有文本更改颜色,但我希望只更改 1 行颜色。
问问题
73389 次
4 回答
53
为此使用 RichTextBox,这是 Nathan Baulch 的扩展方法
public static class RichTextBoxExtensions
{
public static void AppendText(this RichTextBox box, string text, Color color)
{
box.SelectionStart = box.TextLength;
box.SelectionLength = 0;
box.SelectionColor = color;
box.AppendText(text);
box.SelectionColor = box.ForeColor;
}
}
在这里阅读更多
于 2012-05-14T16:54:57.347 回答
18
您需要使用RichTextBox。
然后,您可以通过选择文本并更改选择颜色或字体来更改文本颜色。
richTextBox1.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
richTextBox1.SelectionColor = Color.Red;
于 2012-05-14T16:54:57.443 回答
1
这是一个带有 Fontdialog 和 Colordialog 的示例。
void TextfarbeToolStripMenuItemClick(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
richTextBox1.ForeColor = colorDialog1.Color;
listBox1.ForeColor = colorDialog1.Color;
}
void FontsToolStripMenuItemClick(object sender, EventArgs e)
{
fontDialog1.ShowDialog();
richTextBox1.Font = fontDialog1.Font;
listBox1.Font = fontDialog1.Font;
}
void HintergrundfarbeToolStripMenuItemClick(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
richTextBox1.BackColor = colorDialog1.Color;
listBox1.BackColor = colorDialog1.Color;
}
于 2015-08-16T14:54:17.120 回答
0
首先,您提供的详细信息 + 标签是不够的 - C# 没有一个特定的 UI 框架,它有几个:WPF、Winforms、ASP.NET、Silverlight。
其次,您不能使用上述任何内容中的常规文本框控件来执行此操作。您将需要找到/创建具有不同行为的自定义 UI 控件或使用更高级的控件,例如富文本框。
于 2012-05-14T16:55:26.097 回答