web-dev-qa-db-fra.com

TextBox multicolore C #

Je veux afficher le texte dans la zone de texte en 2 couleurs, par exemple 1 ligne rouge 2 bleu, si j'utilise name.ForeColor = Color.Red; tout le texte change de couleur, mais je veux que cela ne change que 1 couleur de ligne.

15
Wizard

Vous devez utiliser un RichTextBox .

Vous pouvez ensuite changer la couleur du texte en sélectionnant du texte et en modifiant la couleur ou la police de sélection.

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

Utilisez un RichTextBox pour cela, voici une méthode d'extension de 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;
    }
}

En savoir plus ici

41
animaonline

Voici un exemple avec Fontdialog et 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;
        }
1
berta

Tout d'abord, les détails et les balises que vous avez fournis ne sont pas suffisants - C # n'a pas de framework d'interface utilisateur spécifique, mais quelques-uns: WPF, Winforms, ASP.NET, Silverlight.

Deuxièmement, vous ne pouvez pas faire cela avec un contrôle de zone de texte normal dans l’un des éléments ci-dessus . Vous devrez rechercher/créer un contrôle d’UI personnalisé ayant un comportement différent ou utiliser un contrôle plus avancé, par exemple. une zone de texte riche.

0
Danny Varod