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 :

Retrouver des controls inserés dynamiquement


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut Retrouver des controls inserés dynamiquement
    Bonjours a tous.

    Je reviens a vous avec une question qui peut vous paraître simple et qui pourtant me pose un problème.
    Dans une appli de présentation j’insert dynamiquement plusieurs panel que je vais appeler Panel1, Panel2, ….
    Dans chaque Panel j’insert un ou plusieurs PictureBox que l’on vas appeler PictureBox11, PictureBox12,…. Pour le premier Panel (Panel1) et PictureBox21, PictureBox22,… pour le second (Panel2) et ainsi de suite

    Le problème est le suivant :
    L’utilisateur peut modifier les propriétés d’un PictureBox par un clic sur celui ci, notamment ces dimensions.
    Jusque la tout va bien.
    Une foie les nouvelles dimensions affecté au PictureBox il faut que je recalcule leur position a l’intérieur du Panel, et la problème.
    Je n’arrive pas a récupérer le Panel contenant le PictureBox modifier et le nom des PictureBox contenus dans ce dernier.

    Pour récupérer le nom du Panel je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim NomPanel As String
    NomPanel = PictureBoxSélectionné.Parent.Name
    Puis je coince.
    En VB6 il existe Lbound et Ubound mais en .net ?

    Je travail avec VB Express 2005

    Merci par avance de votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Je comprends pas bien la question... pour récupérer le panel qui contient toto, tu fais toto.Parent.
    Quel est le problème ?
    Et quel est le rapport avec UBound et LBound ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Le problème est que je n'arrive pas a récupérer la liste des PictureBox inseres dans mon panel. Les index de controle n'existant plus en .net je ne sais pas comment procéder.
    Deplus je sais pas combien de Panel et de pictureBox vont être insérés par l'utilisateur.

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Tu trouveras certainement tes PictureBox dans PictureBoxSélectionné.Parent.Controls.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 138
    Points : 121
    Points
    121
    Par défaut
    Mes 2 cents:
    Et si tu mets tes pictureboxes dans des collections par panel?
    Tu récupères ton panel par pictureboxX.parent, puis tu récupères les autres en regardant dans quelle collection se trouve ta picturebox sélectionnée.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Il suffit d'énumérer les contrôles enfants du panel, et de ne prendre que ceux qui sont de type Picturebox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim p As Panel = CType(PictureBoxSélectionné.Parent, Panel)
    For Each c As Control in p.Controls
        If TypeOf c Is PictureBox Then
            Dim pb As PictureBox = CType(c, CPictureBox)
            ' Faire quelque chose avec pb ici
            ' ...
        End If
    Next
    (il y a peut-être plus simple, mais je suis CSharpiste, pas VBiste, alors je prends pas de risques...)

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Merci a tous pour m'avoir consacré du temps

    La solution de TomLev est la bonne.
    Mon erreur était de vouloir travailler avec le nom des controles ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PictureBoxSélectionné.Parent.Name
    Encors Merci pour votre aide et a bientôt.

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

Discussions similaires

  1. Créer des controles utilisateur dynamique
    Par oclone dans le forum ASP.NET
    Réponses: 1
    Dernier message: 09/10/2008, 13h42
  2. Perte des controles crées dynamiquement
    Par Worldofdada dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/07/2008, 16h55
  3. une page jsp avec des controles graphique dynamiques
    Par capello123 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 14/12/2007, 16h37
  4. ajouter des control Asp dynamiquement ?
    Par dimmu dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/05/2007, 13h54
  5. Réponses: 9
    Dernier message: 28/10/2005, 13h48

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