多色文本框 C#

本文关键字:文本 | 更新日期: 2023-09-27 18:34:11

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

多色文本框 C#

为此使用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 控件,或使用更高级的控件,例如格式文本框。