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 :

Bizarerie sur controls.remove


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut Bizarerie sur controls.remove
    bonjour tout le monde,

    je crée des controles (bouton et label) dans un panel grâce à Add:
    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
    16
    17
    18
    19
    20
    21
    MyButton = New Button
    MyButton.ForeColor = Couleur
    MyButton.Font = New System.Drawing.Font(Me.Label_Exemple.Font, FontStyle.Bold)
    MyButton.Text = "Valider" 
    MyButton.Name = "MyVal_" & Req.Fields("id").Value
    MyButton.Location = New Point(xPos, yPos)
    MyButton.Width = 57
    MyButton.Height = 22
    AddHandler MyButton.Click, AddressOf MyButton_ActionClick
    Me.MonPanel.Controls.Add(MyButton)
     
    MyLabel = New Label
    MyLabel.ForeColor = Couleur
    MyLabel.Font = New System.Drawing.Font(Me.Label_Exemple.Font, FontStyle.Bold)
    MyLabel.Text = MyNZ(Req.Fields("dt").Value, "") 
    MyLabel.Name = "MyDt_" & Req.Fields("id").Value
    MyLabel.Location = New Point(xPos, yPos)
    MyLabel.AutoSize = True
    MyLabel.Width = 110
    AddHandler MyLabel.Click, AddressOf MyButton_ActionClick
    Me.MonPanel.Controls.Add(MyLabel)
    Et je les supprime par ce script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim T_L() As String
    For Each L As Control In Me.monPanel.Controls
      T_L = Split(L.Name, "_")
      If MyNZ(T_L(0), "") = "MyVal" or MyNZ(T_L(0), "") = "MyDt" Then
        RemoveHandler L.Click, AddressOf MyButton_ActionClick
        Me.MonPanel.Controls.Remove(L)
      End If
    Next

    Si la création ne pose pas de problème, je n'arrive pas systématiquement à "effacer/supprimer" tous les contrôles, comme si le "For Each" ne parcourait pas toute la collection...

    Vous auriez des idées??
    6ril25



    "Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    Bon et bien, j'ai trouvé une solution: enregistrer dans un tableau tous les contrôles créés à la volée et le parcourir pour les supprimer un à un...

    Mais à savoir pourquoi mon "for each" ne parcourt pas tous les contrôles, et bien aucune idée.
    Je laisse donc ce sujet ouvert, si jamais l'un de vous aurait une info...
    6ril25



    "Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius

Discussions similaires

  1. pb critère sql dans une requete basée sur controle d'un form
    Par STANDBOY dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 27/02/2006, 16h17
  2. Réponses: 2
    Dernier message: 23/01/2006, 11h55
  3. WM_MOUSEDOWN sur controle dynamique
    Par hepsilonz dans le forum MFC
    Réponses: 2
    Dernier message: 23/12/2005, 15h37
  4. [Control] Problemes de scintillement sur control perso
    Par Clorish dans le forum Composants VCL
    Réponses: 4
    Dernier message: 07/07/2005, 14h55
  5. [VB.NET] Evenement par défaut sur controle personnalisé
    Par anthony70 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/08/2004, 16h19

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