Position curseur dans richtextbox

Résolu
vboussema Messages postés 138 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 1 septembre 2009 - 5 oct. 2007 à 13:09
vboussema Messages postés 138 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 1 septembre 2009 - 22 oct. 2007 à 08:31
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

vboussema Messages postés 138 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 1 septembre 2009
22 oct. 2007 à 08:31
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
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
5 oct. 2007 à 13:32
Tout simplement la propriété SelectionStart

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
vboussema Messages postés 138 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 1 septembre 2009
5 oct. 2007 à 13:48
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
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
5 oct. 2007 à 14:50
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]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vboussema Messages postés 138 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 1 septembre 2009
6 oct. 2007 à 08:52
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
0
Rejoignez-nous