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 :

Appeler un contrôle indexé [Débutant]


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Points : 0
    Points
    0
    Par défaut Appeler un contrôle indexé
    Bonjour tous le monde

    Sur un formulaire j'ai 400 Labels qui s'appellent C1...C400. Je voudrais accéder a un contrôle en particulier en fonction du résultat d'une requête SQL. Je n'arrive pas a trouver une syntaxe qui me permet de passer le numéro du label autrement qu'en créant une collection ou je déclare les 400 labels en dur, c'est un peu lourd je trouve.
    J’espère avoir été assez clair...
    Merci d'avance pour votre aide.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim ctrl = me.controls("C" & nb.tostring) ' remplacer me par le control parent s'ils ne sont pas directement sur le form
    ca retourne un control, il est possible de caster sur le bon type via directcast


    après si tu trouves lourd de remplir une collection de 400 labels tu aurais pu trouver lourd de poser 400 labels à la main … ca t'aurait fait gagner du temps …

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private _labels as new list(of label)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ' sur load du form
    for i as integer = 1 to 400
      dim l as new label
      me.flowlayoutpanel1.controls.Add(l) ' le flowlayoutpanel s'occupe de mettre les controles à la suite sans chevauchement, ce qui évite de définir top et left pour chaque
      _labels.Add(l) ' et là ils sont dans une collection typée et on peut faire _labels(6).text = "machin"
       ' attention les list vont de 0 à n-1, pour un index qui commence à 1 un dictionary(of int, label) pourrait convenir
    next
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    Merci pour la réponse Pol63 mais ça ne marche pas. Le probleme vient du fait qu'il n'arrive pas a convertir un String en Label, et je ne trouve pas la syntaxe pour ça. J'ai essayé DirectCast et c'est pas mieux.
    Tant pis, je vais utiliser la Collection et ça ira bien.
    Encore merci.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Citation Envoyé par axs13 Voir le message
    Le probleme vient du fait qu'il n'arrive pas a convertir un String en Label, et je ne trouve pas la syntaxe pour ça.
    Et tu ne la trouveras jamais… C'est impossible. C'est comme si tu voulais transformer une pomme en coffre à bijoux.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/02/2018, 08h35
  2. Erreur lors de l'appel au contrôle Windows Date and Time Picker
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/03/2014, 12h56
  3. Réponses: 0
    Dernier message: 14/06/2010, 11h17
  4. Page appelant un Contrôle Utilisateur
    Par krovomi dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/09/2009, 17h40
  5. Comment appeler un contrôle ?
    Par microJaP dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/05/2008, 19h45

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