多色TextBox C#

我希望在文本框中以2种颜色显示文本,例如1行红色2蓝色,如果我使用name.ForeColor = Color.Red; 所有文字都改变颜色,但我希望它只会改变1行颜色。

您需要使用RichTextBox 。

然后,您可以通过选择文本并更改选择颜色或字体来更改文本颜色。

 richTextBox1.SelectionFont = new Font("Verdana", 12, FontStyle.Bold); richTextBox1.SelectionColor = Color.Red; 

使用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; } } 

在这里阅读更多

这是一个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控件或使用更高级的控件,例如富文本框。