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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    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 chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    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
    Membre Expert
    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
    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.
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 26
    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
    Membre Expert
    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
    Par défaut
    Oui par exemple, si tu la mis dans un panel, tu fais Me.MonPanel.Items("NOMDE TA COMBO")
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    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 éprouvé

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

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

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

  8. #8
    Membre Expert
    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
    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.
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

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