begin process at 2012 02 14 16:14:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Richtextbox - coloration syntaxique


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Richtextbox - coloration syntaxique

jeudi 15 mai 2008 à 08:01:24 | Richtextbox - coloration syntaxique

kciope

Bonjour tout le monde,

Je sollicite votre aide concernant l'utilisation de richtextbox. J'ai fais une fonction qui doit changer la couleur d'une partie de mon texte dans ma RTB :
ma fonction :

Code :
PublicFunction changecouleur(ByVal rtb As RichTextBox, ByVal chaineatrouver AsString, ByVal Lcolor As System.Drawing.Color)
 
Dim longeurchaine AsInteger = Microsoft.VisualBasic.Len(chaineatrouver)
Dim debutchaine AsInteger = rtb.Find(chaineatrouver, RichTextBoxFinds.MatchCase)
'on fait un saut de ligne pour les prochaines lignes
rtb.Text = rtb.Text & vbCrLf
rtb.Focus()
'on selectionne la chaine a colorier
rtb.Select(debutchaine, longeurchaine)
rtb.SelectionColor = Lcolor
rtb.DeselectAll()
'on place le curseur a la fin
rtb.SelectionStart = rtb.Text.Length
 
EndFunction
 
Jusque là ca va, quand je fais appel a ma fonction ca marche j'ai mon texte en couleur, mais si j'appel a nouveau ma fonction avec un nouveau texte, seul cette nouvelle chaine est colorée. L'autre revient en noire.
Avez vous des idées sur le pourquoi du comment?
Merci d'avance.

 

jeudi 15 mai 2008 à 09:04:24 | Re : Richtextbox - coloration syntaxique

Exploreur

Membre Club

Salut,

Regarde cette source si elle peut te venir en aide....

A+
Exploreur

 Linux a un noyau, Windows un pépin

jeudi 15 mai 2008 à 09:14:52 | Re : Richtextbox - coloration syntaxique

Renfield

Administrateur CodeS-SourceS
a cause de  rtb.Text = rtb.Text


jeudi 15 mai 2008 à 09:15:44 | Re : Richtextbox - coloration syntaxique

Renfield

Administrateur CodeS-SourceS
faire :

rtb.SelText = vbCrLf  

(propriété a adapter a .Net)
jeudi 15 mai 2008 à 11:49:39 | Re : Richtextbox - coloration syntaxique

kciope


Je ne suis pas suis que cela soit du  au rtb.text=rtb.text & vbcrlf
car quand je le supprime c'est la meme chose
jeudi 15 mai 2008 à 11:51:45 | Re : Richtextbox - coloration syntaxique

kciope

Merci pour l'info, je suis en train de voir ca. J'ai sorti les paguai... c'est un autre niveau
jeudi 15 mai 2008 à 11:52:05 | Re : Richtextbox - coloration syntaxique

Renfield

Administrateur CodeS-SourceS
depend du reste du code ton appli...

tu ne dois pas faire de RTB.Text =

sinon, le TextRTF est remis à 0
jeudi 15 mai 2008 à 13:07:38 | Re : Richtextbox - coloration syntaxique

kciope

ok je vais voir aussi de ca coté

 

jeudi 15 mai 2008 à 16:44:58 | Re : Richtextbox - coloration syntaxique

kciope

Réponse acceptée !
Ca y est j'ai trouvé voici ma nouvelle fonction :

  
  Public Function changecouleur(ByVal t As ArrayList, ByVal rtb As RichTextBox, ByVal chaineatrouver As String, ByVal Lcolor As System.Drawing.Color)
        Dim longeurchaine As Integer
        Dim debutchaine As Integer
        'on fait un saut de ligne pour les prochaines lignes
        rtb.Text = rtb.Text & vbCrLf
        Dim item As String
        t.Add(chaineatrouver) 'on ajoute la chaine dans le tableau
        'rtb.SelectedText = vbCrLf
        For Each item In t
            'MsgBox("item debut : " & item)
            longeurchaine = Microsoft.VisualBasic.Len(item)
            debutchaine = rtb.Find(item, RichTextBoxFinds.MatchCase)
            rtb.Select(debutchaine, longeurchaine)
            rtb.SelectionColor = Lcolor
            rtb.DeselectAll()
        Next
        'on place le curseur a la fin
        rtb.SelectionStart = rtb.Text.Length
        rtb.Focus()
    End Function

et j'ai créer un variable dans mon module :

Public arrayimg, arrayvideos As New ArrayList() 'declaration des array pour qu'il soit accessible a tous le programme

et j'appelle ma fonction comme ci :


changecouleur(array, rtb, strimg, Color.Orange)

 Merci a vous pour votre aide

jeudi 15 mai 2008 à 23:48:17 | Re : Richtextbox - coloration syntaxique

christoni

Membre Club

Bonsoir,

Tu peux aussi t'essayer aux expressions régulières.

Ainsi ta fonction , Sub serait courte et rapide comme suit :


    Shared Sub changecouleur(ByVal rtb As RichTextBox, ByVal chaineatrouver AsString, ByVal Lcolor As Color)


        Dim reCherchText As Regex = New Regex("[\s\r\n]*" & chaineatrouver)

        Dim mReCherchText As Match = reCherchText.Match(rtb.Text)

        Dim mcReCherchText As MatchCollection = reCherchText.Matches(rtb.Text)

        With rtb

            For Each mReCherchText In mcReCherchText

                .Select(mReCherchText.Index, mReCherchText.Length)

                .SelectionColor = Lcolor

            Next

        End With

    End Sub


Sans oublier d'importer l'espace de nom : 

Imports System.Text.RegularExpressions


« reCherchText » est la chaîne à coloriser, on y ajoute un ou plusieurs

espaces, retours chariot ou nouvelles lignes qui peuvent exister dans

ton expression à rechercher.

« Match » est la recherche cas par cas dans le texte.

« MatchColletion » regroupe l'ensemble des occurances trouvées.

   

Enfin la boucle parcourre ces occurances et les met en couleur.

 

Bonne continuation.


1 2

Cette discussion est classée dans : fonction, texte, richtextbox, rtb, byval


Répondre à ce message

Sujets en rapport avec ce message

fonction richtextbox_selchange [ par so25 ] Bonjour à tous,Je vous écris car j'ai un richtextbox composé de beaucoup de caractères(environ 200000).Le problème est lorsque j'utilisela fonction rt taille d'un RichTextBox [ par radada ] Slt à tous Encore une petite question -> j'ai une RTB (RichTextBox, en anglais dans le texte lol ;D) dans laquelle les 2 scrollsBars sont autorisé Save RichTextBox en Append [ par EvilGost ] Bonjour a toute la communauté,est-il possible de sauvegarder une richtextbox, par la fonction richtextbox.savefile, mais en append.C'est a dire que ce Recuperer du texte dans un rtb [ par Fab707 ] Salut a tous, j'aimerai savoir comment recuperer seulement le texte d'une ligne de mon choix dan un richtextbox et aussi savoir comment voir combien i Afficher du texte préalablement enregistré en fonction du pseudo [ par Papymuzo ] Bonjour Voila le problème (je simplifie au maximum les actions) : j'ai un Richtextbox, nommé Rapport dans une form1. dans une form2, j'ai mis une opti Insérer une chaine de texte dans un RichTextBox [ par Owee ] Comment faire pour insérer ue chaine de texte rapidement à chaque ligne d'un RichTextBox ?J'ai mon RichTextBox. J'ai essayé :For i = 0 To (RTB.Lines.L Ajout d'un propriété à une Class ! Aider-moi :( je crack [ par scottmat ] Bonsoir à tousje me permet de REposter mon message une deuxième fois parceque la je passe mes nuits à bosser et essayer de faire sa. Pour moi ce que j Plusieurs couleurs et polices dans une RichTextBox [ par lionel4 ] Salut à tous,J'essaie de faire une application avec une sorte de "console". Cette console est tout simplement une RichTextBox dans laquelle j'ajoute a Impression [ par scottmat ] bonjours à tous,j'ai un richtextbox que je voudrais tout simplement imprimer le texte se trouvant à l'intérieur. je suis sous VB.NET 2005voici mon bou TabControl en dynamique [ par winny68 ] Yop,Je suis en train de réaliser un bloc-note avec un tabcontrol contenant une richtextbox. Losqu'on clic sur nouveau, le tabcontrol créer une nouvell


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,972 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales