19

テキストボックスにテキストを2色で表示したいのですが、たとえば、name.ForeColor = Color.Red;すべてのテキストの色を変更する場合は、1行の赤と2の青を変更しますが、1行の色だけを変更します。

4

4 に答える 4

53

そのためにRichTextBoxを使用します。これは、NathanBaulchによる拡張メソッドです。

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

詳細はこちら

于 2012-05-14T16:54:57.347 に答える
18

RichTextBoxを使用する必要があります。

次に、テキストを選択し、選択した色またはフォントを変更することで、テキストの色を変更できます。

richTextBox1.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
richTextBox1.SelectionColor = Color.Red;
于 2012-05-14T16:54:57.443 に答える
1

これは、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;
        }
于 2015-08-16T14:54:17.120 に答える
0

まず、提供した詳細とタグだけでは不十分です。C#には特定のUIフレームワークがなく、WPF、Winforms、ASP.NET、Silverlightなどがいくつかあります。

第二に、上記のいずれの場合でも、通常のテキストボックスコントロールではこれを行うことはできません。動作が異なるカスタムUIコントロールを検索/作成するか、リッチテキストボックスなどのより高度なコントロールを使用する必要があります。

于 2012-05-14T16:55:26.097 に答える