多色TextBox C#

时间:2012-05-14 16:51:59

标签: c# winforms textbox

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

3 个答案:

答案 0 :(得分:41)

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

了解更多here

答案 1 :(得分:16)

您需要使用RichTextBox

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

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

答案 2 :(得分:0)

首先,您提供的详细信息+标签是不够的 - C#没有一个特定的UI框架,它有一些:WPF,Winforms,ASP.NET,Silverlight。

其次,在上述任何一种情况下,您无法使用常规文本框控件执行此操作。 您需要查找/创建具有不同行为的自定义UI控件或使用更高级的控件,例如一个富文本框。