Comment puis-je peindre en rouge chaque fois que je rencontre la lettre "A" dans RichTextBox?Coloriage sélectif de texte dans RichTextBox
Répondre
Essayez ceci:
static void HighlightPhrase(RichTextBox box, string phrase, Color color) {
int pos = box.SelectionStart;
string s = box.Text;
for (int ix = 0; ;) {
int jx = s.IndexOf(phrase, ix, StringComparison.CurrentCultureIgnoreCase);
if (jx < 0) break;
box.SelectionStart = jx;
box.SelectionLength = phrase.Length;
box.SelectionColor = color;
ix = jx + 1;
}
box.SelectionStart = pos;
box.SelectionLength = 0;
}
...
private void button1_Click(object sender, EventArgs e) {
richTextBox1.Text = "Aardvarks are strange animals";
HighlightPhrase(richTextBox1, "a", Color.Red);
}
Cela ne fonctionnera pas pendant que vous tapez si c'est ce que vous cherchez, mais je l'utiliser pour mettre en évidence: les sous-chaînes
Function Highlight(ByVal Search_Str As Object, ByVal InputTxt As String, ByVal StartTag As String, ByVal EndTag As String) As String
Highlight = Regex.Replace(InputTxt, "(" & Regex.Escape(Search_Str) & ")", StartTag & "$1" & EndTag, RegexOptions.IgnoreCase)
End Function
et l'appeler ainsi:
Highlight("A", "Color All my A's red", [span class=highlight]', '[/span]')
Où la classe «highlight» a quel que soit le code/formatage de couleur que vous voulez:
.highlight {text-decoration: none;color:black;background:red;}
BTW: vous devez changer supports oses carrés à les angles ... ils ne viennent pas à travers quand je les tapais ...
merci pour l'aide, mais avez-vous du code C#? – Gold
C'est le C# code pour la réponse de EJ Brennan:
public string Highlight(object Search_Str, string InputTxt, string StartTag, string EndTag)
{
return Regex.Replace(InputTxt, "(" + Regex.Escape(Search_Str) + ")", StartTag + "$1" + EndTag, RegexOptions.IgnoreCase);
}
Voici un extrait de ma classe wrapper pour faire ce travail:
private delegate void AddMessageCallback(string message, Color color);
public void AddMessage(string message)
{
Color color = Color.Empty;
string searchedString = message.ToLowerInvariant();
if (searchedString.Contains("failed")
|| searchedString.Contains("error")
|| searchedString.Contains("warning"))
{
color = Color.Red;
}
else if (searchedString.Contains("success"))
{
color = Color.Green;
}
AddMessage(message, color);
}
public void AddMessage(string message, Color color)
{
if (_richTextBox.InvokeRequired)
{
AddMessageCallback cb = new AddMessageCallback(AddMessageInternal);
_richTextBox.BeginInvoke(cb, message, color);
}
else
{
AddMessageInternal(message, color);
}
}
private void AddMessageInternal(string message, Color color)
{
string formattedMessage = String.Format("{0:G} {1}{2}", DateTime.Now, message, Environment.NewLine);
if (color != Color.Empty)
{
_richTextBox.SelectionColor = color;
}
_richTextBox.SelectedText = formattedMessage;
_richTextBox.SelectionStart = _richTextBox.Text.Length;
_richTextBox.ScrollToCaret();
}
Maintenant, vous pouvez l'appeler avec AddMessage("The command failed")
pour l'activer automatiquement en rouge. Ou vous pouvez l'appeler avec AddMessage("Just a special message", Color.Purple)
pour définir une couleur spéciale (utile par exemple dans des blocs catch pour définir une couleur spécifique, quel que soit le contenu du message)
Merci Oliver, votre code m'a aidé! – Maro
- 1. Tri sélectif dans MySQL?
- 2. Supprimer le texte de RichTextBox
- 3. Remplacer le texte dans WPF Richtextbox
- 4. Winforms RichTextBox Taille du texte?
- 5. Coloriage dynamique
- 6. Propriété de texte personnalisé WPT RichTextBox
- 7. XSLT: Manipulation Noeud sélectif
- 8. Coloriage Image dans iPhone SDK
- 9. RichTextBox
- 10. Coloriage de lignes dans un TreeViewer
- 11. WPF RichTextBox ne supprime pas le texte
- 12. Set texte RTF en WPF RichTextBox contrôle
- 13. Coloriage nom du répertoire dans ksh
- 14. Comment trouver du texte répété dans un RichTextBox?
- 15. richTextBox limite de caractères?
- 16. Définir le curseur dans RichTextBox
- 17. Apparence RichTextBox
- 18. Coloriage de Select élément html par jquery
- 19. Coloriage de syntaxe Visual Studio 2008 Problème
- 20. Symbole Celsius dans RichTextBox
- 21. Rectangulaire BackColor de sélection dans RichTextBox
- 22. Importation de XAML dans WPF RichTextBox
- 23. WPF richTextBox question
- 24. Définir les propriétés des polices dans RichTextBox
- 25. WPF RichTextBox - Remplacer le texte sélectionné par un contrôle personnalisé
- 26. RegExp C# et richtextbox
- 27. VB.NET - RichTextBox - Appliquer la mise en forme au texte sélectionné
- 28. WPF Richtextbox FontFace/FontSize
- 29. Insérer une image dans WPF RichTextBox
- 30. Remplacement sélectif des colonnes de R par leurs valeurs delta
Copie possible de [Colorer différentes parties d'une chaîne RichTextBox] (https: // stackoverflow.com/questions/1926264/color-different-parts-of-a-richtextbox-string) –