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 :

Supprimer des controls de la form [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut Supprimer des controls de la form
    Bonjour
    J'ai une liste de pictureboxes ajoutés dynamiquement à me
    le name de chacun est "lettres0" , "lettres1"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private listlettre As New List(Of PictureBox)
    private sub initialize()
     For iter = 0 To 9
         Dim thepiclettre As New PictureBox
            With thepiclettre
                  .Name = "lettres" & iter.ToString
                   listlettre.Add(thepiclettre)
                    Me.Controls.Add(thepiclettre)
              End With
         next 
    end sub
     
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      initialize()
    end sub
    Ce que je voudrais c'est de supprimer de la form les picturesbox nommés
    lettres0 à lettres9

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim x As Integer = 10
            For Each ctlr As Control In Me.Controls
                If TypeOf ctlr Is PictureBox Then
                    If ctlr.Name.StartsWith("lettres") Then
                        x -= 1
                        ctlr.Dispose()
                    End If
                End If
            Next
    bizarre à la sortie de la boucle x =5 ? et pas tous les picturebox sont supprimés

    merci

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    à tout hasard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each ctlr As Control In Me.Controls.ToList
    à vrai dire je suis étonné que ca ne plante pas, car modifier une collection pendant son itération plante en général
    .Dispose sur un control le retire de la collection Controls de son parent
    .ToList effectue une copie des pointeurs des éléments dans un nouvelle variable, donc .Dispose n'affecte pas ce List(Of )
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    ce n'est pas accepté

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    In Me.Controls.OfType(Of Picturebox)
    au passage vous n'aurez plus besoin du if typeof
    oftype retourne un ienumerable, donc ce n'est pas la collection Controls donc ca évite aussi d'itérer sur Controls
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonsoir,
    cela semble fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            For x = 0 To 7
                For Each ctrl As Control In Me.Controls.OfType(Of PictureBox)()
                    If ctrl.Name.StartsWith("lettres" & x.ToString) Then
                        ctrl.Dispose()
                    End If
                Next
            Next
    A voir...

  6. #6
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Merci ça fonctionne

  7. #7
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Et pourquoi pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            For i As Integer = 0 To 7
                Controls.RemoveByKey("lettres" & i.ToString)
            Next

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

Discussions similaires

  1. Ordre d'affichage des control dans une form
    Par bipcpp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/12/2009, 20h08
  2. Redimensionnement des Controls d'un Form
    Par pounaid dans le forum Windows Forms
    Réponses: 14
    Dernier message: 12/03/2009, 15h28
  3. [Listview]Ajout Name des controles d'une form dans une listview
    Par Roken62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/01/2009, 13h17
  4. Supprimer des controles personnalisés
    Par cameleon33 dans le forum Débuter
    Réponses: 15
    Dernier message: 12/09/2008, 09h38
  5. [VB6] Comment boucler sur des controls d'un form ?
    Par lankviller dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/01/2003, 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