IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

suppression propre de controls en ligne de code


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Par défaut suppression propre de controls en ligne de code
    Bonjour,

    je crée dynamiquement par mon appli des onglets (tabpage) et des datagridview (dans chaque onglet)
    j'ai crée un bouton reset qui doit me supprimer les onglets crées dynamiquement

    ma question est de savoir comment faire cela proprement:
    si je supprime mon onglet --> est-ce que le datagridview qui était sur cet onglet est également supprimé ou est il encore en mémoire?

    Merci

    K

  2. #2
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Pour répondre à ta question, le datagridview sur la tabpage a pour "parent" (propriété Datagridview1.Parent = Tabpage1) la tabpage en question. Donc en supprimant un contrôle, tous les contrôle ayant pour parent ce contrôle devraient être supprimer directement.

    Sinon, tu peux plus simplement utiliser ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            Dim ctrl As Control
     
            For Each ctrl In Me.Controls 'C'est ta collection de controles associés à ta form, on peut aussi mettre Form1.Controls
     
                ctrl.Dispose()
     
            Next
    Il te supprimera tout les contrôles associés à ta form, mais si ton bouton est sur la même form je te conseille d'utiliser uen collection spécifique :

    A la création de tes différents contrôles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim MyCollec As New Collection
     
    MyCollec.Add(TabControl1) 'par exemple à la création de la TabControl1
    Et dans lévènement de ton bouton reset :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub BtReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtReset.MouseClick
     
    Dim ctrl As Control
     
            For Each ctrl In MyCollec 'Tu ne supprimes que les contrôles de ta collection, donc ceux que tu souhaites uniquement
     
                ctrl.Dispose()
     
            Next
     
    End Sub
    Bonne continuation.

Discussions similaires

  1. [Prototype] Ecrire de façon plus propre une ligne de code
    Par baggie dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 12/06/2012, 11h29
  2. Suppression d'un controle par code
    Par SandyF dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 16/07/2010, 13h01
  3. Réponses: 6
    Dernier message: 22/06/2007, 10h50
  4. [C#] Control user dans le code caché
    Par pc152 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 07/05/2004, 06h36
  5. Calculeur de ligne de code
    Par Bernybon dans le forum Autres éditeurs
    Réponses: 9
    Dernier message: 05/03/2004, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo