p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Inactif

    Homme Profil pro
    développeur Vala
    Inscrit en
    février 2011
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2011
    Messages : 481
    Points : 3 656
    Points
    3 656

    Par défaut [Source] RichTextBox avec fonction de recherche

    Voici un contrôle .Net héritant de RichTextBox, permettant de surligner chaque occurence du mot recherché :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public static class RichTextBoxExtensions
        {
            public static void HighlightText(this RichTextBox richTextBox, string word, Color color){
    			int startIndex = 0, index;
    			richTextBox.Select(0,richTextBox.Text.Length);
    			richTextBox.SelectionColor = richTextBox.ForeColor;
    			if(word.Length==0)return;
     
                         while((index = richTextBox.Text.IndexOf(word, startIndex)) != -1)
                         {
                            richTextBox.Select(index, word.Length);
                            richTextBox.SelectionColor = color;
                            startIndex = index + word.Length;
                         }
                    }
        }

  2. #2
    Rédacteur/Modérateur



    Homme Profil pro
    Développeur .NET
    Inscrit en
    février 2004
    Messages
    19 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2004
    Messages : 19 521
    Points : 40 007
    Points
    40 007

    Par défaut

    Salut Yannick,

    Merci pour ta contribution !

    Si je peux me permettre une petite suggestion, cette méthode serait un bon candidat pour une méthode d'extension :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
            public static class RichTextBoxExtensions
    	{
    		public static void HighlightText(this RichTextBox richTextBox, string word, Color color){  
                         int s_start = richTextBox.SelectionStart, startIndex = 0, index;
     
                         while((index = richTextBox.Text.IndexOf(word, startIndex)) != -1)
                         {
                            richTextBox.Select(index, word.Length);
                            richTextBox.SelectionColor = color;
                            startIndex = index + word.Length;
                         }
     
                         richTextBox.SelectionStart = s_start;
                         richTextBox.SelectionLength = 0;
                         richTextBox.SelectionColor = richTextBox.ForeColor;
        	        }
    	}
    Ca s'utiliserait exactement de la même manière.

    Tu vas me dire, qu'est-ce que ça change ? Bah si tu as déjà une application avec des RichTextBox, c'est pas très pratique de tous les remplacer par des SearchTextBox, recabler les évènements, etc... Avec une méthode d'extension, pas besoin de changer les contrôles existants, tu peux utiliser la méthode comme si c'était un membre de la classe RichTextBox. Bien sûr ça suppose d'utiliser le compilateur C# 3 ou plus (donc VS2008 ou plus récent).

  3. #3
    Inactif

    Homme Profil pro
    développeur Vala
    Inscrit en
    février 2011
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2011
    Messages : 481
    Points : 3 656
    Points
    3 656

    Par défaut

    Citation Envoyé par tomlev Voir le message
    Salut Yannick,

    Merci pour ta contribution !

    Si je peux me permettre une petite suggestion, cette méthode serait un bon candidat pour une méthode d'extension :
    [...]
    Ca s'utiliserait exactement de la même manière.

    Tu vas me dire, qu'est-ce que ça change ? Bah si tu as déjà une application avec des RichTextBox, c'est pas très pratique de tous les remplacer par des SearchTextBox, recabler les évènements, etc... Avec une méthode d'extension, pas besoin de changer les contrôles existants, tu peux utiliser la méthode comme si c'était un membre de la classe RichTextBox. Bien sûr ça suppose d'utiliser le compilateur C# 3 ou plus (donc VS2008 ou plus récent).
    Merci de ce complément, je n'avais jamais utilisé les extensions Je me suis permis de corriger l'extension, pour que la coloration soit nulle quand la recherche est nulle

  4. #4
    Rédacteur/Modérateur



    Homme Profil pro
    Développeur .NET
    Inscrit en
    février 2004
    Messages
    19 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2004
    Messages : 19 521
    Points : 40 007
    Points
    40 007

    Par défaut

    Ah ouais mais si tu modifies le message d'origine, ma réponse n'a plus de sens
    Bon ça fait rien

Discussions similaires

  1. Fonction de recherche open source en PHP
    Par bdeuu dans le forum Scripts
    Réponses: 5
    Dernier message: 21/04/2008, 15h46
  2. Problemes avec la fonction de recherche sur sharepoint
    Par nico_pouchet dans le forum SharePoint
    Réponses: 3
    Dernier message: 29/11/2007, 17h10
  3. Linked list: problemes avec fonction de recherche
    Par virtuadrack dans le forum C
    Réponses: 13
    Dernier message: 11/11/2007, 21h43
  4. Problème avec la fonction de recherche Vista
    Par p026687 dans le forum Windows Vista
    Réponses: 5
    Dernier message: 03/10/2007, 11h18
  5. Réponses: 12
    Dernier message: 19/01/2006, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo