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

cs_kanabis 59 Messages postés mercredi 26 mai 2004Date d'inscription 27 juillet 2008 Dernière intervention - 29 juin 2008 à 20:11 - Dernière réponse : cs_kanabis 59 Messages postés mercredi 26 mai 2004Date d'inscription 27 juillet 2008 Dernière intervention
- 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
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 29 juin 2008 à 20:26
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 #   

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de cs_casy
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 29 juin 2008 à 20:25
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
cs_kanabis 59 Messages postés mercredi 26 mai 2004Date d'inscription 27 juillet 2008 Dernière intervention - 29 juin 2008 à 21:07
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
cs_kanabis 59 Messages postés mercredi 26 mai 2004Date d'inscription 27 juillet 2008 Dernière intervention - 29 juin 2008 à 21:11
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
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 29 juin 2008 à 21:14
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
cs_kanabis 59 Messages postés mercredi 26 mai 2004Date d'inscription 27 juillet 2008 Dernière intervention - 29 juin 2008 à 21:28
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
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 29 juin 2008 à 21:33
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
cs_kanabis 59 Messages postés mercredi 26 mai 2004Date d'inscription 27 juillet 2008 Dernière intervention - 29 juin 2008 à 21:39
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
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 29 juin 2008 à 21:46
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
cs_kanabis 59 Messages postés mercredi 26 mai 2004Date d'inscription 27 juillet 2008 Dernière intervention - 29 juin 2008 à 21:48
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
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 29 juin 2008 à 21:55
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
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 29 juin 2008 à 22:02
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
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 29 juin 2008 à 22:05
0
Merci
d'ailleurs c'est  If (i And 127) = 0 Then Application.DoEvents()
^^
Commenter la réponse de PCPT
cs_kanabis 59 Messages postés mercredi 26 mai 2004Date d'inscription 27 juillet 2008 Dernière intervention - 29 juin 2008 à 22:25
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.