Comment détruire tous les objets d'une form

f56bre Messages postés 67 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 26 juillet 2006 - 16 mai 2006 à 23:36
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 17 mai 2006 à 18:14
salut

comment puis-je détruire tous les objets présents sur une form d'un coup, sauf un label et un control?
merci

6 réponses

cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
17 mai 2006 à 07:11
Bonjour
Voici une méthode qui utilise le Tag des contrôles :

'On établit une boucle pour balayer plusieurs fois le formulaire,
'car un seul balayage ne suffit pas VB en oublie.
'le nbre de balayage, ici correspond au nombre de contrôles
'à effacer.
For compt As Integer = 1 To (Me.Controls.Count - 2)
For Each contro As Control In Me.Controls
'A chaque contrôle, que l'on veut garder, on attribue
'en mode Design, un Tag comme "garder" par exemple.
'Si le contrôle contrôlé a un Tag différent, il
'sera effacé.
If contro.Tag <> "garder" Then
contro.Dispose()
End If
Next
'si le nombre de contrôles restant sur le formulaire
'égale le nbre à conserver, on sort de la boucle.
If Me.Controls.Count = 2 Then Exit For
Next
On peut placer ce bout de code dans le bouton conservé.
Bonne journée.
0
f56bre Messages postés 67 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 26 juillet 2006
17 mai 2006 à 07:23
merci pour ta réponse mais je code sous vb6 et la ligne "For Each contro As Control In Me.Controls" bug
ainsi que celle ci : "contro.Dispose()"
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
17 mai 2006 à 10:36
Bonjour,
essai :
dim C as object
for each C as in Form1.controls
   set c = nothing ' ou C.delete je sais plus trop en vb6
next

-- Pourquoi faire simple quand on peut faire compliquer --
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 13:32
tu ne pouras décharger que des controles ajoutés dynamiquement....

pour quelle raison souhaite tu faire cela ? n'y a t'il aucun autre moyen ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0

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

Posez votre question
f56bre Messages postés 67 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 26 juillet 2006
17 mai 2006 à 17:42
en fait un test assez compliqué et dépendant de l'heure crée dynamiquement des controls, mais si le test est relancé il va créer des controls de même non et s'il il ne sont pas tous détruit il y aura un bug. La destruction va ne effet etre compromise par le changement d'heure.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2006 à 18:14
............
Unload MonControleChargéDynamiquement ( 11 )
Unload MonControleChargéDynamiquement ( 12 )
............

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous