Ajouter ligne suivante ListBox1.Items( ??? ) à un RichTextBox [Résolu]

Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
27 juillet 2008
- - Dernière réponse : cs_kanabis
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
27 juillet 2008
- 29 juin 2008 à 22:25
Bonjour,
J'aimerais savoir comment faire pour créer une sorte de boucle qui prendrait la ligne 1 de mon ListBox1 et l'ajouterait à mon RichTextBox2, puis ferais de même avec la ligne 2 du ListBox1, puis la ligne 3, ...

Je suis partis avec une truc de ce style...

        RichTextBox1.Text &= ListBox1.Items( ??? )

Merci par avance aux réponses.
Bonne continuation.
Beny
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
3
Merci
    For i As Integer = 0 To ListBox1.Items.Count - 1
      RichTextBox1.Text &= ListBox1.Items(i) & Environment.NewLine
    Next

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #   

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_casy
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
29
0
Merci
salut,

beh comme tu l'écris toi même...., c'est une boucle.
donc de i 0 à N (dernier item)

donc I
non?
Commenter la réponse de PCPT
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
27 juillet 2008
0
Merci
Apparement la méthode de Casy marche.

Nickel merci pour cette réponse rapide.
Bonne continuation.
Commenter la réponse de cs_kanabis
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
27 juillet 2008
0
Merci
Petite question.
Cette action se fait sur environ 3000 lignes de ListBox, il est for possible que le programme plante (ne réponde pas), est-il possible d'outrapasser cela ?
Merci.
Commenter la réponse de cs_kanabis
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
0
Merci
Un Application.DoEvents() dans la boucle devrait faire l'affaire.

3000 lignes ça devrait pas prendre plus de quelques secondes je pense.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
27 juillet 2008
0
Merci
Le Application.DoEvents() doit être placé ou ?

For i As Integer = 0 To ListBox1.Items.Count - 1
      RichTextBox1.Text &= ListBox1.Items(i) & Environment.NewLine
Next
Application.DoEvents()
RichTextBox1.SaveFile("C:\Fichier.rtf")
Commenter la réponse de cs_kanabis
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
0
Merci
Dans la boucle, j'ai dit :

For i As Integer = 0 To ListBox1.Items.Count - 1
      RichTextBox1.Text &= ListBox1.Items(i) & Environment.NewLine
      Application.DoEvents()
Next

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
27 juillet 2008
0
Merci
Ok parfait merci.
Ca fonctionne mais c'est assez long (plusieurs minutes).
Est-ce qu'a la fin, après avoir copier tout les listbox, il reviendra au début ou il s'arretera ?
Commenter la réponse de cs_kanabis
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
29
0
Merci
RichTextBox1.visible = false

For i As Integer = 0 To ListBox1.Items.Count - 1
      RichTextBox1.Text &= ListBox1.Items(i) & Environment.NewLine
      if (i and 127) then Application.DoEvents()
Next i
RichTextBox1.visible = true
Commenter la réponse de PCPT
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
27 juillet 2008
0
Merci
Ok, mais pourrai-je avoir une petite explication de ces commandes svp ?

RichTextBox1.visible = false
For i As Integer = 0 To ListBox1.Items.Count - 1
      RichTextBox1.Text &= ListBox1.Items(i) & Environment.NewLine
      if (i and 127) then Application.DoEvents()
Next i
RichTextBox1.visible = true
Commenter la réponse de cs_kanabis
Messages postés
3288
Date d'inscription
jeudi 3 avril 2008
Dernière intervention
14 septembre 2014
17
0
Merci
'avec la méthode appendText ça va plus vite



For

i = 0


To

ListBox1.Items.Count - 1RichTextBox2.AppendText(ListBox1.Items(i) & Environment.NewLine)

'Application.DoEvents()



Next

i
Commenter la réponse de gillardg
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
29
0
Merci
le fait de la rendre invisible pendant le traitement évite de dessiner la chaine, donc gain de temps.
quant au i and 127, on ne fait un DOEVENTS qu'une fois sur 128, ce qui est bien suffisant, et donc plus rapide

voir ce lien :
Q : [doc/faq.aspx#vb_doevents Code : Mon application freeze lors d'une
longue opération, comment y rémedier]

++
Commenter la réponse de PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
29
0
Merci
d'ailleurs c'est  If (i And 127) = 0 Then Application.DoEvents()
^^
Commenter la réponse de PCPT
Messages postés
59
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
27 juillet 2008
0
Merci
Tout est nikel.
1000 merci.
Bonne continuation.

(PS: les ListBox sont limité en nombre de lignes, c'est dommage...)
Commenter la réponse de cs_kanabis

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.