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 :

Trouver un objet via son nom


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Points : 21
    Points
    21
    Par défaut Trouver un objet via son nom
    Voila j'ai des comboBox à remplir, leurs noms : combo_1, combo_2, ...

    et je voulais savoir s'il était possible de retrouver l'objet à partir de son nom (string)

    le but étant de faire une boucle de type

    for n=1 to nombreDeCombo
    combo_n.addRange(...)
    end for

    Merci

  2. #2
    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
    Si la combo est un contrôle de la feuille, alors (Me est la Form) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim comboBox As ComboBox = Me.Controls.Item("comboBoxName")
    Mais si tu as beaucoup de contrôles ou si tes contrôles sont dans des conteneurs, le plus simple est peut-être de stocker tes combos dans une table de hachage.

  3. #3
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Il y a plusieurs manière de le faire. Que veux tu faire exactement ? Tu peux aussi parcourir tous les controles et récupérer celui qui t'intéresse.

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    Points : 21
    Points
    21
    Par défaut Très intérressé
    Mon problème est que les combobox se trouvent dans divers onglets, cardre, ... pour rendre le design plus accueillant! et avec la méthode du Me.controls.item("combobox1") il faut que j'aille chaque fois jusquà l'emplacement où elle se trouve.

    Il y a-t-il un méthode plus générale ?
    ex : Me.listdesobjects.item("combobox1") et directement je suis dessus.

    Pour rappel mon but est de remplir une série de combo dont le nom varie en fonction du chiffre derrière! combo_1, combo_2, combo_3

  5. #5
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Oui par exemple, si tu la mis dans un panel, tu fais Me.MonPanel.Items("NOMDE TA COMBO")

  6. #6
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Il te faut une méthode recursive qui vérifie chaque control enfant de chaque composants.

    Exemple (à vérifier)

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
     
    Function ControlItem( _
       ByVal Str_NomControl As String _
    ) As Control
     
      ' Recherche du control
      Return RechercherControl(Me, Str_NomControl)
    End Function
     
    Function RechercherControl( _
       ByVal ctlParent As Control, _
       ByVal Str_NomControl As String _
    ) As Control
     
      Dim ctlEnfant As Control
      Dim ctlRech As Control
     
      ' Recherche du control dans la liste de controls
      For Each ctlEnfant In ctlParent.Controls
          If ctlEnfant.Name = Str_NomControl Then Return ctlEnfant
     
          If ctlEnfant.Controls.Count > 0 Then 
              ctlRech = RechercherControl(ctlEnfant, Str_NomControl)
              If Not IsNothing(ctlRech) Then Return ctlRech
          End If
      Next     
     
      Return Nothing
    End Function

  7. #7
    Membre expérimenté

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Points : 1 738
    Points
    1 738
    Billets dans le blog
    1
    Par défaut
    Cette question a déjà été traité, avec des textbox je crois...

  8. #8
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par Kelpan Voir le message
    Il te faut une méthode recursive qui vérifie chaque control enfant de chaque composants.
    Pas besoin de récursivité normalement mais tout dépend d'où est positionné ton contrôle sur le formulaire.

    Sinon pense à utiliser la fonction recherche si la question a déjà été traitée.

Discussions similaires

  1. Appeler une méthode d'objet via son nom à l'exécution
    Par Nono40 dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 09/02/2013, 11h51
  2. Rechercher un onglet via son nom
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/05/2008, 11h30
  3. Récupérer objet par son nom dans une chaîne
    Par peijnoob dans le forum C#
    Réponses: 7
    Dernier message: 14/02/2008, 16h47
  4. Réponses: 3
    Dernier message: 16/07/2007, 21h47
  5. JS: Connaître le type d'un champ HTML via son nom
    Par NikoBe dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 02/11/2006, 11h24

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