TextBoxe et retour à la ligne [Résolu]

Signaler
Messages postés
45
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
2 août 2018
-
Messages postés
45
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
2 août 2018
-
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.
A voir également:

13 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
En C# c'est la même chose, tu utilises += au lieu de &=   ....

<hr />
-My Blog-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
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-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
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# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
ah bah ca faisait longtemps :p

Mx
MVP C# 
Messages postés
45
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
2 août 2018

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.
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
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-
Messages postés
45
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
2 août 2018

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.


 
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
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-
Messages postés
45
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
2 août 2018

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.
Messages postés
45
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
2 août 2018

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.
Messages postés
45
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
2 août 2018

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.
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
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-
Messages postés
45
Date d'inscription
dimanche 6 novembre 2005
Statut
Membre
Dernière intervention
2 août 2018

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.