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