多色文本框C#(Multi-color TextBox C#)

2019-06-24 10:18发布

我想显示在2种颜色的文本框的文本,例如1行红色2蓝色,如果我用name.ForeColor = Color.Red; 所有的文本改变颜色,但我想,这将改变只有1线的颜色。

Answer 1:

你需要使用一个RichTextBox的 。

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

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


Answer 2:

使用针对一个RichTextBox,这里是由Nathan鲍奇扩展方法

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

阅读更多在这里



Answer 3:

这是一个带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;
        }


Answer 4:

首先,你所提供的细节+标签是不够的 - C#没有一个具体的UI框架,它有几个:WPF,的WinForms,ASP.NET,Silverlight的。

其次重要的是,你不能在任何上述的常规TextBox控件做到这一点。 你将需要找到/创建具有不同的行为,或者使用更先进的控制如丰富的文本框自定义UI控件。



文章来源: Multi-color TextBox C#