Recherche index de debut de ligne dans RichTextBox, PS: devient fou !

Signaler
Messages postés
206
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour, j'ai chercher un peu partout mais je n'ai pas réussi à trouver precisement !

Je veut faire une coloration syntaxique comme par exemple l'ide de vb6 le fait, ligne par ligne, je m'explique :

Les rares coloration syntaxique que j'ai vu traite le contenu de tout un RichTextBox d'un coup !
Moi je veut faire la color en temp réel et pour ne pas bouffer toutes les ressources du pc, qu'a chaque ajout de caractères il n'ait pas à me recoloriser 700 lignes d'une classe PHP par exemple, en fait je veut traiter seulement le contenu de la ligne en cours.

Donc je m'en suis aller chercher toutes les valeurs en temps réel de positionnement dans un RichTextBox et j'ai trouver les choses suivantes :

- Position courrante du marqueur,
- Début du texte (premier caractère du RTF)
- Fin de texte (dernier caractère du RTF)
- Ligne courrante
- Nombre total de ligne
- Dernier caractère de la ligne (avec recherche de passage à la ligne)

Mais voilà, pas moyen de trouver la position du premier caractère de la ligne en cours !!!
Il faudrais pour ça que je puisse soit trouver le passage à la ligne précedent soit le nombre de caractère de la ligne en cours...

Je penser faire une recherche en sens inverse pour recherche le passage à la ligne précedent, pas possible, en tout cas pas avec les methodes disponible par défault, donc du coup je me suis dit que j'alais faire une recherche dans le bon sens de la ligne précedente, pas moyen de pointer vers la lignes précedentes avec le n° de ligne (on se demande à quoi il sert !)

Bref je suis perdu et un peut saouler, comme d'hab je me rend compte de la débilité de conception de certain contrôles MS, il code vraiment comme des {#~~[[#...

Y'a une jolie fonction GetLineFromChar qui renvoie la ligne courante mais on ne peut rien en faire !!!
N'aurait il pas pus faire soit une fonction du genre CharCountFromLine ou bien faire une recherche en sens inverse du genre Variable =RichTextBox1.find("toto", 15, -38)

Bref si qqun connait la solution, merci, moi je continue à chercher,

Recément je me suis mis au JavaScript et PHP ces language me fesait peur, mais malgré mes 10 ans de vb6 j'arrive à un résultat beaucoup plus rapidement en PHP alors que j'ai commencer y a une semaine ! Devrais-je me mettre au c# ou java ?

Guillaume

1 réponse

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
tout simplement:

Sendmessage avec EM_LINEINDEX

http://msdn.microsoft.com/en-us/library/bb761611(VS.85).aspx