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

Dotnet Discussion :

Coloration Syntaxique dans une listBox


Sujet :

Dotnet

  1. #1
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut Coloration Syntaxique dans une listBox
    Bonjour,

    J'ai une fonction dont le rôle est d'afficher des lignes de logs. Voici à peu de chose près sa déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int Log(String^ msg) { ... }
    Je souhaiterais changer la couleur d'une ligne de cette listbox en fonction de certaines chaînes de caractères trouvées dans l'objet msg de type System::String.

    Comment faire?

    Merci d'avance!
    Rodrigue

  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
    Waouh, tu codes une appli winforms en C++ ?! t'es motivé

    Pas sûr que tu puisses faire ça avec une listbox...
    Avec un RichTextBox ce sera plus simple je pense.

  3. #3
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    Voilà j'ai trouvé!


    Il suffit de mettre la propriété DrawMode du ListBox à OwnerDrawFixed et de coder l'évènement DrawItem:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    /* Draw background */
          e->DrawBackground();
     
          /* get the text */
          String^ Text = ((ListBox^)sender)->Items[e->Index]->ToString();
     
          /* Determine the brush color. */
          Brush^ myBrush;
     
          String^ LowerText = ((String^)(Text->Clone()))->ToLower();    /* put the text to lower */
     
          if(LowerText->Contains("error")) {
             myBrush = Brushes::Red;
          }
          else if(LowerText->Contains("progress")) {
             myBrush = Brushes::Green;
          }
          else if(LowerText->Contains("finish")) {
             myBrush = Brushes::Blue;
          }
          else {
             myBrush = Brushes::Black;
          }
     
          /* Draw the current item text based on the current Font and the custom brush settings. */
          e->Graphics->DrawString(Text, e->Font, myBrush, e->Bounds, StringFormat::GenericDefault);
     
          /* If the ListBox has focus, draw a focus rectangle around the selected item. */
          e->DrawFocusRectangle();
    Rodrigue

  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
    bien vu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. colorer une ligne sur deux dans une listbox
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/08/2010, 13h59
  2. Clique droit dans une ListBox
    Par LoicH dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/02/2005, 22h50
  3. [debutant] supprimer elements dans une listbox
    Par F.F. dans le forum C++Builder
    Réponses: 8
    Dernier message: 02/07/2004, 11h38
  4. [WIN32]tabulation dans une listbox
    Par stoluup dans le forum MFC
    Réponses: 2
    Dernier message: 09/06/2004, 10h11
  5. Icône a coté du texte dans une ListBox
    Par joce3000 dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/12/2003, 02h25

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