IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez .NET Discussion :

[Source] RichTextBox avec fonction de recherche


Sujet :

Contribuez .NET

  1. #1
    Inactif  

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

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

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    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;
                         }
                    }
        }
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 875
    Points : 39 749
    Points
    39 749
    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
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

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

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    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
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 875
    Points : 39 749
    Points
    39 749
    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 EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 21/04/2008, 16h46
  2. Problemes avec la fonction de recherche sur sharepoint
    Par nico_pouchet dans le forum SharePoint
    Réponses: 3
    Dernier message: 29/11/2007, 18h10
  3. Linked list: problemes avec fonction de recherche
    Par virtuadrack dans le forum C
    Réponses: 13
    Dernier message: 11/11/2007, 22h43
  4. Problème avec la fonction de recherche Vista
    Par p026687 dans le forum Windows Vista
    Réponses: 5
    Dernier message: 03/10/2007, 12h18
  5. Validation de formulaire recherche avec fonction javascript
    Par Cdic dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/01/2006, 11h52

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