cs_mabrouklepoux
Messages postés84Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention25 juillet 2008
-
5 janv. 2008 à 11:07
cs_mabrouklepoux
Messages postés84Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention25 juillet 2008
-
5 janv. 2008 à 16:57
bonjour, bonne année, santé, pognon, sexe, drogue tout se qui rend la vie belle quoi ...
juste une question pour comprendre.
j'ajoute des elements dans un panel (en fait j'ajoute des ele dans un panel, puis j'ajoute ce panel à mon panel principal: Explorer1.FlowLayoutPanel1), pas de souci
après je veux les supprimer souci :
javais fait :
Dim contro As Object
For Each contro In Explorer1.FlowLayoutPanel1.Controls
en faisant
Dim contro As Object
Dim bool As Boolean
bool = False
While bool = False
bool = True
For Each contro In Explorer1.FlowLayoutPanel1.Controls
Explorer1.FlowLayoutPanel1.Controls.Remove(contro)
bool = False
Next contro
End While
ca marche, et je trouve ca taré ...
j'ai chécké que le for each boucle bien utniquement sur les panels, et non sur les sous obj de ces panels, ce qui aurait pu expliquer la sortie de for each
le fait est que ca marche, donc pas de souci, mais ca me turlupine (bonne résolution 2007, utiliser turlipiner à tire larigot)
merci ...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 5 janv. 2008 à 13:35
Salut,
Je pense que c'est le même genre de problème que celui bien connu de suppression des éléments d'une liste dans une boucle for allant du premier au dernier : dans ta boucle, si tu supprime un élément, l'itérateur perd la position à laquelle il était.
Dans ton cas, au lieu de faire un for-each, il vaudrait mieux faire un While (Explorer1.FlowLayoutPanel1.Controls.Count > 0)
______________________________________
DarK Sidious
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 5 janv. 2008 à 16:26
Salut,
Ce n'est pas un problème lié à VB, mais un problème d'algorithme :
Si tu as un tableau avec 100 éléments par exemple, et que tu le parcoure de l'élément 0 à l'élément 99 en supprimant chaque élément du tableau, arrivé à l'élément 50, tu aura bien supprimé les 50 premiers, mais tu ne pourras pas aller plus loin... la solution consiste à prendre le problème à l'envers : commencer par le 99ème élément pour remonter jusqu'au dernier. C'est le cas pour de très nombreux langages (tous ?).
______________________________________
DarK Sidious