多色文本框 C#
本文关键字:文本 | 更新日期: 2023-09-27 18:34:11
我想在文本框中以 2 种颜色显示文本,例如 1 行红色 2 蓝色,如果我使用name.ForeColor = Color.Red;
所有文本都会更改颜色,但我希望这只会更改 1 行颜色。
为此使用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;
}
}
在此处阅读更多内容
您需要使用 RichTextBox。
然后,您可以通过选择文本并更改选择颜色或字体来更改文本颜色。
richTextBox1.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
richTextBox1.SelectionColor = Color.Red;
下面是一个带有 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;
}
首先,您提供的详细信息+标签是不够的 - C#没有一个特定的UI框架,它有几个:WPF,Winforms,ASP.NET,Silverlight。
其次,您不能使用上述任何一项中的常规文本框控件执行此操作。您需要查找/创建具有不同行为的自定义 UI 控件,或使用更高级的控件,例如格式文本框。