Position curseur dans richtextbox

[Résolu]
Signaler
Messages postés
138
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
1 septembre 2009
-
Messages postés
138
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
1 septembre 2009
-
salut;
je veut savoir la position du curseur dans un richtextbox dans le but de découper le texte en deux parties selon la position du curseur.
si quelqun a une idé merci de la poser

//as you like

5 réponses

Messages postés
138
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
1 septembre 2009
1
bon j'ai pu resolu le problème grace à un controle:
http://www.codeproject.com/cs/miscct...ichtextbox.asp
ce controle permet de concatener le contenu de deux rtb donc il suffit de prendre la paremière partie du texte coloré(selectedrtf) et la mettre dans une variable la duxièmme et la mettre dans une variable,puis vider le rtb puis concatener le premier texte puis ajouter le texte et le coloré puis concatener la deuxièmme partie et comme sa on conserve la coloration après l'insertion du texte.

//as you like
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
Tout simplement la propriété SelectionStart

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
138
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
1 septembre 2009
1
bon le problème que j'aime situer du texte coloré entre deux textes coloré si je fait append il concatène à la fin du texte et il conserve les couleurs mais si je concatène avec += le text ajouté est avec la couleur et l'autre est en noir!!!
aussi j'ai essayé avec append en determinant la position du curseur :
 
String t1 = rtx1.Text.Substring(0,index);
            String t2 = rtx1.Text.Substring(index,rtx1.Text.Length-index);
            MessageBox.Show("t1 =" + t1 + " t2= " + t2);
            String comp = cmb.SelectedItem.ToString();
            rtx1.Text = t1;
            rtx1.AppendText(" "+comp + " ");
           rtx1.Select(rtx1.Text.LastIndexOf(comp), comp.Length);
            rtx1.SelectionColor = Color.FromName(cmb.SelectedItem.ToString());
            rtx1.AppendText(t2);
bon sa na pas réussi seul le nouveau texte est en couleur!!!

//as you like
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
il faut le faire en 2 étapes :

1 - tu ajoutes ton texte (il sera naturellement dans la couleur du texte existant)
2 - tu sélectionnes le texte que tu viens d'insérer, et tu en changes la couleur.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
138
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
1 septembre 2009
1
bon merci sebmafate
mais j'ai déja fait sa mais le problème c'est que quand j'ajoute le texte il se colore c'est vrai mais après il revient a la couleur noir si j'ajoute d'autre.
bon le problème c'est que je couleur pas le texte que je saisie mais mon texte est extrait depuit un combobox ou une listebox!
et chaque type doit avoir un couleur .aussi pour la methode appendtext sa marche très bien elle conserve les couleurs mais le problème provient quand je veut insérer du texte au milieu du texte original! donc la la methode appendtext ne marche pas c poour cela que j'ai voulu savoir la position du curseur.
si vous avez une solution merci bien de la poser,et merci encore une autre foi

//as you like