TextBoxe et retour à la ligne

Résolu
astvt Messages postés 45 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 2 août 2018 - 27 janv. 2008 à 18:03
astvt Messages postés 45 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 2 août 2018 - 31 janv. 2008 à 17:08
Bonjour à tous,
Dans mon programme j'utilise une TextBoxe définie en multilignes.
Au fur et à mesure du déroulement de mon programme, j'affiche dans ma TextBoxe des informations comme suite:

affiche = affiche +

" " + donnee +
"\t" +
"\t" +
"LDA " +
"#$" + donnee;

this.textBoxCode.Text = affiche + "\r\n";   

Le problème est que malgrés les \r\n, j'affiche les données sur la première ligne de la TextBoxe alors que je devrais les affichées les une sous les autres.

1ère ligne
2ème ligne
....
10ème ligne.
J'ai essayé de mettre les \r\n à la fin de ma ligne derrière "donnee" (ex: + donnee + "\r\n";) mais rien n'y fait.
Quelqu'un a t il une idée?
Merci pour votre aide.

13 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 59
30 janv. 2008 à 13:00
En C# c'est la même chose, tu utilises += au lieu de &=   ....

<hr />
-My Blog-
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 59
27 janv. 2008 à 18:26
Salut,
Je viens de vérifier, ça fonctionne avec \r\n
Essayes comme ça une fois pour voir:

this.textBox.Text =
String.Format(
"Lign 1{0}Lign 2",
Environment.NewLine);

<hr />
-My Blog-
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
27 janv. 2008 à 18:39
Salut,

Pourtant la 2eme solution que tu proposes devrait marcher.
Autrement, essaie :

this

.textBoxCode.AppendText(
string.Format(
" {0}\t\tLDA #${1}\r\n", donnee, donnee));

Mx
MVP C# 
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
27 janv. 2008 à 18:40
ah bah ca faisait longtemps :p

Mx
MVP C# 
0

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

Posez votre question
astvt Messages postés 45 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 2 août 2018
28 janv. 2008 à 17:52
Bonjour,
Mon problème n'est pas résolu. Que je mette dans mon string affiche les commandes \r\n, cela ne change rien.


Si je ne mets pas \r\n en fin de string, je devrais écrire chaque ligne à la queue leuleu. Là non, systématiquement, à chaque fois que j'écris mon string par:
this.textbox1.text = affiche, le contenu du string s'affiche sur la première ligne.
Il semble qu'un retour charriot soit généré automatiquement et qu'il n'y a pas de mise à jour sur le nombre de ligne. Comme si il n'y avait qu'une ligne dans ma textbox alors qu'elle est définie en multilignes.

En VB2005 je faisait la même chose mais pour inserrer un RC, NL je fais:
this.textbox1.text &= VBCRLF
Quelqu'un a t il une idée? J'ai vérifié les propriétés de ma textbox mais je ne vois pas ce qui coince.
Merci pour votre aide.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 59
28 janv. 2008 à 17:57
Créer un nouveau projet.
Ajoute une textebox (multiligne) et un bouton sur ta form.

Dans le clic du bouton, tu mets
this.textBox.Text = String.Format("Lign 1{0}Lign 2", Environment.NewLine);

Si ça fonctionne pas, t'as un très gros problème

<hr />
-My Blog-
0
astvt Messages postés 45 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 2 août 2018
29 janv. 2008 à 16:21
Bonjour Bidou,
j'ai essaiyé ta suggestion, elle fonctionne. J'ai bien Lign 1 sur la ligne 1 et Lign 2 sur la ligne 2.


Je me suis peut être mal exprimé, mon problème est que je crée des strings différent. Sur la ligne 1 j'affiche un premier string contenu dans une variable "affiche" que j'envois à ma textbox par this.textbox1.text affiche; Mon programme continue et je crée un nouveau string dans ma variable "affiche" et je l'envois à ma textbox toujours par this.textbox1.text affiche;. Seulement à ce moment, mon second string vient s'afficher dans ma textbox sur la ligne 1. Ce que je voudrais s'est que le second, le troisième string etc.. s'affichent les uns en dessous des autres. Exemple:
ligne 1 toto <- mon premier string.
ligne 2 titi <- mon deuxième strings.
......
ligne 20 dfgh <- mon vingtième strings.
A tu une idée?
"\r\n" ne fonctionne pas à la fin de chaque string. Si \r\n est dans un string alors le string est affiché sur deux lignes, mais ce n'est pas ce que je désire faire.
Dans ton exemple si j'ai bien compris tu formates un string composé de Lign 1 et de Lign 2 que tu coupes en deux par {0} et que tu affiches sur deux lignes.
Mois ce que je veux s'est que chaque string s'affiche les uns en dessous des autres comme dans l'exemple.


 
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 59
29 janv. 2008 à 17:37
Je ne suis pas sûr d'avoir compris...
Est-ce que la property Lines ne pourrait pas régler ton problème?

Ca te permets de setter une ligne spécifique du textebox...

<hr />
-My Blog-
0
astvt Messages postés 45 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 2 août 2018
30 janv. 2008 à 09:46
Bonjour, peut être que la property Lines pourrais régler le problème, je n'ai pas essayé.
Ce qui est curieus, en VB avec les mêmes définition cela fonctionne. Si tu veux regarder sur le site VB, VB.NET de CodeS-SourceS, j'avais posé la même question et un dévelopeur m'avait fourni un truc qui fonctionne en VB2005.


Je faisais Me.textBox1.Text = affiche puis Me.textBox1.Text &= vbcrlf et là lorsque j'écris à nouveau dans ma textbox le nouveau string contenu dans affiche, s'imprime sous la ligne déjà écrite.


Si tu voeux bien regarder sur le site VB avec mon alias tu devrais trouver ma question de l'époque. Peut être cela t'éclairera sur ce que je désire faire.


Merci encore pour ton aide.


Alain.
0
astvt Messages postés 45 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 2 août 2018
30 janv. 2008 à 18:21
Merci pour ta réponse. Maintenant exist-il un équivalent en C# de la commande vbCrLf ??? J'ai essayé de faire:
this.textBox1.Text = affiche;
this.textBox1.Text += "\r\n"; mais cela ne fonctionne pas. Je pense que le string "\r\n" ne fonction qu'à l'interieur d'un string et non à la fin.
Si dans un string j'ai "toto \r\n titi" j'aurai toto sur une ligne et titi en dessous. Là effectivement \r\n fonctionne. Donc il doit y avoir en C# un équivalent à vbCrLf.
Peut être le connaît tu? Moi je n'est pas trouvé dans la doc que je possède.

Merci pour to aide.
0
astvt Messages postés 45 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 2 août 2018
30 janv. 2008 à 18:35
Je viens de revoir mon programme CA FONCTIONNE. C'est moi qui m...ais.
En faisant this.textBox1.Text += affiche; pui
this.textBox1.Text += "\r\n"; a chaque fois que je veux afficher un string cela fonctionne. J'avais oublier de le faire sur tous les this.textBox1.Text. Il faut un += si non cela ne fonctionne pas.
Mon problème est régler.

Merci beaucoup pour ton aide et ta patience.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 59
30 janv. 2008 à 20:10
Niveau performance, ça doit pas être le pied ton histoire... Regarde du côté du RichTextBox et de sa méthode Append ou alors de StringBuilder (System.Text)

<hr />
-My Blog-
0
astvt Messages postés 45 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 2 août 2018
31 janv. 2008 à 17:08
Bonjour Bidou
Je te remerci pour tes conseilles, mon problème est réglé et il fonctionne comme je souhaitais. A chaque fois que j'affiche dans ma zone de texte, les messages s'affichent les uns en dessous des autres. Je n'avais pas bien compris le système d'affichage. Avec this.textBox1.Text += affiche + "\r\n"; ca marche. Il faut mettre à chaque instruction this.textBox1.Text  "+=" et non pas "=" pour ajouter les caractères de retour à la ligne et nouvelle ligne.


Je te remercie encore pour ton aide. 
0