Ecrire dans RichTextBox à deux positions différentes sur une même ligne

AlexBob789
Messages postés
8
Date d'inscription
mardi 2 mars 2004
Statut
Membre
Dernière intervention
14 septembre 2008
- 14 nov. 2005 à 22:10
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
- 18 nov. 2005 à 10:41
Je vous salut,

Je suis présentement en train d'essayer décrire des informations dans Richtexbox mais j'arrive pas a les présenter sous forme de colonne, je m'explique :

0 20
Nom: Marley
Prenom: Bob
Pays Jamaique

Quelqu'1 a une idée?

5 réponses

sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
15 nov. 2005 à 08:54
as-tu essayé en mettant des tabulations ?

0\t\t20
Nom:\t\tMarley

donne :
0 20
Nom: Marley

Sébastien FERRAND
[MVP C#]
0
AlexBob789
Messages postés
8
Date d'inscription
mardi 2 mars 2004
Statut
Membre
Dernière intervention
14 septembre 2008

15 nov. 2005 à 14:13
Merci Sébatien pour ton intervention,
j'ai essayé ton exemple mais quand les données sont affichées le chiffre 0 ou 20 le sont aussi


string
l1 = "Nom:";


string l2 = "Marley",l3;




l3 = "0\t\t20" + l1 + "\t\t" + l2;


rtb.AppendText(l3);


Resultat:
0 20Nom: Marley

qui est différent de
0 20
Nom: Marley

Mais j'ai pas envie que les chiffres soitr affichés. Je ne sais pas ce que je fais d'incorrect? As-tu une idée.

Par la même occasion j'explique mon problème: j'utilise le RichTextbox pour afficher des informations qui doivent être imprimer à partir d'un guichet électronique. Comme l'écra du guchet n'est pas si grand je dois vraiment jouer avec la position des caractères à l'écran et sur papier. Je ne sais pas s'il y a un autre control qui me permet de faire cela à part le RichTexbox.
Merci Bien.

BobAlex
0
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
15 nov. 2005 à 18:37
Il suffisait que tu ajoutes un retour à la ligne...

Sinon pour effectuer ton alignement tu as juste à te concocter une petite méthode utilaitaire pour toi ajouter autant d'espaces qu'il le faut à la fin de ta chaine :

Exemple :
private static string AppendSpaces(string src, int newStrLength)
{
StringBuilder sb = new StringBuilder(newStrLength);
sb.Append(src);
for(int i=0; i<newStrLength-src.Length; i++)
{
sb.Append(' ');
}
return sb.ToString();
}

Utilisation :
string l1 = "Nom:";
string l2 = "Marley";
string l3 = string.Concat(AppendSpaces(l1, 19), l2, Environment.NewLine)
rtb.AppendText(l3);

/*
coq
MVP Visual C#
*/
0
AlexBob789
Messages postés
8
Date d'inscription
mardi 2 mars 2004
Statut
Membre
Dernière intervention
14 septembre 2008

18 nov. 2005 à 00:57
Merci pour ton intervention Coq,


Mais je l'avais déjà utilisé la methode String.PadRight bien avant ta methode, mais ça ne donne pas de résultats satisfaisants, prenons l'exemple suivant:


WWWWWWWWWW *


IIIIIII *


Alors tu as la chaine de 10 W et 10 espace et * se situe à la 21 positions, il en est de même pour la chaine2 de 10 I et 10 espace. Mais quand tu regardes tu vois très bien que les deux * ne sont pas allignés verticalement, ils sont tous à la POSITION 21, mais ils ne sont pas à la COLONNE 21 (si je peux m'exprimer de cette manière).

En faite je ne suis pas encore sortis de l'auberge.
0

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

Posez votre question
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
18 nov. 2005 à 10:41
Wow, je me fais vieux j'avais complètement oublier PadRight

Sinon oui je n'avais pas penser à ce problème là
Il faudrais que tu utilises une police "Raster" (bitmap) mais je ne sais pas si c'est possible dans un RTB.

/*
coq
MVP Visual C#
*/
0