Bonjour,

Je me casse les dents sur 5 lignes de codes depuis plusieurs heures...

Un programme externe appel une fonction qui permet de sélectionner une partie de texte dans un WebBrowser. Je reçois du programme la position de début et la longueur à sélectionner.

Le problème, c'est que j'ai du code HTML et lorsque je déplace ma sélection à la position voulue avec moveStart("character",..., la fonction moveStart me "comptabilise" pas les balises html comme étant un caractère, mais quand j'applique la méthode select(), les balises sont pris en compte dans le select(). Résultat, si j'ai 2 balises avant mon texte à sélectionné, ma sélection est décalée de 2 caractère.

Voici mon bout de code de sélection :

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
public void setSelected(int start, int length)
{
            IHTMLBodyElement bodyElement = (IHTMLBodyElement)doc.body;
            IHTMLTxtRange range = bodyElement.createTextRange();
            range.collapse(true);
 
            range.moveStart("character", -0x7FFFFFFF);
            string ht = range.htmlText;
 
            int ind = 0;
            while (ind < start)
            {
                range.moveStart("character", 1);
                ind++;
            }
 
            range.moveEnd("character", length);
            range.select();
            range.text;
}
Une idée constructive pour m'aider à trouver le problème ou le remède ?

Meilleures salutations

Merci beaucoup

STC