Coloriser différentes parties de RichTextBox ajouter du texte en C#
Question :
Vous souhaitez colorer sélectivement certaines parties de la chaîne attachée à la RichTextBox. Plus précisément, vous souhaitez que le texte entre crochets, les informations utilisateur et le message lui-même soient dessinés dans des couleurs différentes.
Solution : Méthode d'extension avec paramètre de couleur
Pour atteindre vos objectifs, vous pouvez utiliser une méthode d'extension pour surcharger la méthode AppendText et introduire un paramètre de couleur. Voici le code :
<code class="language-csharp">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; //重置颜色 } }</code>
Utilisation :
Après avoir défini la méthode d'extension, elle est très simple à utiliser. Utilisez-le simplement comme indiqué dans le code suivant :
<code class="language-csharp">string userid = "USER0001"; string message = "访问被拒绝"; RichTextBox 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(message, Color.Blue); box.AppendText(Environment.NewLine); Form form = new Form { Controls = { box } }; form.ShowDialog();</code>
Remarque :
Veuillez noter qu'une sortie de texte excessive peut provoquer le scintillement de la RichTextBox. Veuillez vous référer à l'article C# Corner mentionné dans la réponse pour connaître les solutions possibles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!