Voglio mostrare il testo nella casella di testo in 2 colori, ad esempio 1 riga rossa 2 blu, se uso name.ForeColor = Color.Red;
tutto il colore cambia colore, ma voglio che cambi solo 1 colore di linea.TextBox multicolore C#
risposta
È necessario utilizzare un RichTextBox.
È quindi possibile modificare il colore del testo selezionando il testo e cambiando il colore o il carattere di selezione.
richTextBox1.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
richTextBox1.SelectionColor = Color.Red;
Utilizzare un RichTextBox per questo, qui è un metodo di estensione da 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;
}
}
Leggere di più here
qualche idea su come fare con la casella di testo? – Wizard
non c'è modo di farlo con un TextBox wf, dovrai creare il tuo UserControl o usare il RichTextBox ... – animaonline
Sto studiando il tuo codice 'var userid =" USER0001 "; var message = "Accesso negato"; var box = new RichTextBox { Dock = DockStyle.Fill, Font = new Font ("Courier New", 10) }; box.AppendText ("[" + DateTime.Now.ToShortTimeString() + "]", Color.Red); box.AppendText (""); box.AppendText (userid, Color.Green); box.AppendText (":"); box.AppendText (messaggio, Color.Blue); box.AppendText (Environment.NewLine); nuova forma {Controls = {box}}. ShowDialog(); 'e non capisco come farlo RichTextBox non sarà in una nuova forma? – Wizard
Prima di tutto, i dettagli + tag che fornite non sono sufficienti - C# non ha un framework di interfaccia utente specifica, ha un paio: WPF, WinForms, ASP.NET, Silverlight.
In secondo luogo, non è possibile eseguire questa operazione con un controllo normale della casella di testo in uno dei precedenti. È necessario trovare/creare un controllo dell'interfaccia utente personalizzata che abbia un comportamento diverso o utilizzare un controllo più avanzato, ad es. una ricca casella di testo.
Ecco un esempio con Fontdialog e 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;
}
WinForms o WPF? – Tudor
Io uso winform. – Wizard
@Tudor ForeColor è una proprietà di Windows Form – animaonline