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

Windows Forms Discussion :

[VB.NET][2.0]retirer en une fois tous les objets d'un panel


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut [VB.NET][2.0]retirer en une fois tous les objets d'un panel
    Bonjour,


    Je voudrais retirer d'un FlowLayoutPanel tous les userControls que j'y ai ajouté.

    NiamorH m'avait gentillement donné une solution pour retirer un objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.flowLayoutPanelLiv.controls.remove(me.FlowLaoutPanelLiv.Controls.Item(0))
    qui m'enlève le premier usercontrol que j'ai rajouté sur mon panel (c'est ce que je lui avais demandé). encore merci.

    Comme je dois boucler pour enlever tous mes usercontrol , celà prend un peu de temps.

    Y-a-t'il moyen de vider "sauvagement" mon flowLayoutPanel de tous ses objets d'un coup ?

  2. #2
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    dim nb as integer = tonPanel.Controls.count - 1
    dim i as integer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = nb to 0 Step - 1
        If TypeOf tonPanel.Controls.Item(i) Is LeTypeDeTonUserControl Then
             tonPanel.Controls.Remove(tonPanel.Controls.Item(i))
        End If
    Next
    On commence par le dernier car sinon il te retasse les numéro d'index et il va planter dans ton for.

    PS : Je vois que Form a une méthode .Controls.Clear qui supprime tous les controles de la form, elle doit exister pour les panels, tu peux l'utiliser si ton panel ne contient que des usercontrols à supprimer, sinon c'est la boucle

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    Tu as aussi une boucle plus orientée objet :
    Dim c as Control
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each c in tonPanel.Controls
        If TypeOf c Is tonTypeUsercontrol Then
            tonPanel.Controls.Remove(c)
        End If
    Next

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Cher NiamorH,

    Merci pour tes boucles, mais c'est ce que j'utilisais (la moins orientée objet des deux).

    Par contre il y a bien une méthode clear qui fonctionne parfaitement bien.

    J'avais cherché sur Clean, removeAll ou un truc comme ça mais visiblement j'étais passé à coté du Clear.

    Merci

    PS:

    NiamorH a écrit :
    , tu peux l'utiliser si ton panel ne contient que des usercontrols à supprimer, sinon c'est la boucle
    Pourquoi dis-tu que ça ne fonctionne que si userControl ?

  5. #5
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    c'etait selon ce que tu voulais en faire.
    cette méthode enleve tous les controles, j'avais vu que tu voulais seulement enlever tes usercontrols.
    Donc si ton panel ne contient que des usercontrols ça marche mais si tu dois faire le tri c'est la boucle qu'il faut choisir pour faire le test

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Ah alors c'est OK. Mon problème était bien d'enlever tous les contrôles...

    Parfois j'ai un peu de mal à mettre noir sur blanc le problème...

    Je te remercie en tous cas pour toutes tes solutions (dont le clear que j'utilise maintenant à la place de ma boucle).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/05/2012, 17h34
  2. Réponses: 0
    Dernier message: 03/03/2011, 15h39
  3. Charger une page une fois que les scripts sont effectués
    Par A-Imperator dans le forum jQuery
    Réponses: 5
    Dernier message: 05/03/2010, 15h28
  4. Réponses: 4
    Dernier message: 08/11/2005, 17h13
  5. [Swing] Mettre une police à tous les composants
    Par MrEddy dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/05/2004, 15h21

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