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 :

Comment manipuler des controles avec un nom du style buttonX (X allant de 1 à 20)


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 54
    Points
    54
    Par défaut Comment manipuler des controles avec un nom du style buttonX (X allant de 1 à 20)
    Bonjour à tous,
    Comment éviter d'écrire ces 20 lignes ?
    Label1.Text = ChargementActivites("QD3a", 1)
    Label2.Text = ChargementActivites("QD3a", 2)
    ...
    Label20.Text = ChargementActivites("QD3a", 20)


    Est-ce qu'une boucle de ce style est possible ?
    for I = 1 to 20
    Label+I.text = ChargementActivites("QD3a", I)
    Next

    Quelle syntaxe utilisée pour Label+I.text (je sais que c'est n'importe quoi mais c'était pour expliquer ) ?

    Par avance, merci.

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Tu peux effectuer une recherche sur le forum, c'est une question assez récurrente, tu devrais trouver ta solution

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par SaumonAgile
    Tu peux effectuer une recherche sur le forum, c'est une question assez récurrente, tu devrais trouver ta solution
    Je veux bien mais avec quels mots clés faire la recherche ?
    Ceux que j'avais mis ne donnent rien ou me donnent des centaines de pages...

    Ce n'est pas dans mes habitudes de poser une question avant d'avoir chercher...

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334

  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
    Salut,

    Tu as aussi cette possibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each ctrl As Control In Me.Controls 'liste tous les controles 
                If TypeOf ctrl Is Label Then 'si c'est un label
                    ctrl.Text = "Cool"
                End If
            Next
    Bonne chance

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 54
    Points
    54
    Par défaut
    Le code (ci-dessous) proposé dans ce post, ne marche pas chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim Con As Control
            Dim Lab As Label
            Dim ZeTransform As String
     
            For j As Integer = 1 To 18
                ZeTransform = j
                Con = Me.Controls(Me.Controls.IndexOfKey("Lab" + ZeTransform))
                Lab = CType(Con, Label)
                Lab.BackColor = Color.AliceBlue
            Next j
    J'ai le message "IndexOfKey is not a member of System.Web.UI.ControlCollection"...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 54
    Points
    54
    Par défaut
    Salut,
    Merci pour l'info (ce me servira surement plus tard ) mais je n'ai que quelques label a modifié dans ma boucle...
    J'ai donc regardé le code proposé dans le lien de SaumonAgile mais hélas ca ne marche pas (cf. mon post à ce sujet...)

    Citation Envoyé par Aspic
    Salut,

    Tu as aussi cette possibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each ctrl As Control In Me.Controls 'liste tous les controles 
                If TypeOf ctrl Is Label Then 'si c'est un label
                    ctrl.Text = "Cool"
                End If
            Next
    Bonne chance

  8. #8
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par harry25
    J'ai le message "IndexOfKey is not a member of System.Web.UI.ControlCollection"...
    Hmmm, si tu ne précises pas que c'est une application ASP.NET, ce n'est pas étonnant que les solutions proposées ne fonctionnent pas...
    Le code fonctionne en effet pour une application winforms.

    Regarde alors du côté de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Control.FindControl (String)

  9. #9
    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 SaumonAgile
    Hmmm, si tu ne précises pas que c'est une application ASP.NET, ce n'est pas étonnant que les solutions proposées ne fonctionnent pas...
    AH ok donc c'est normal aussi que ma solution ne fonctionne pas

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par SaumonAgile
    Hmmm, si tu ne précises pas que c'est une application ASP.NET, ce n'est pas étonnant que les solutions proposées ne fonctionnent pas...
    Le code fonctionne en effet pour une application winforms.

    Regarde alors du côté de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Control.FindControl (String)
    J'ai remplacé :
    Con = Me.Controls(Me.Controls.IndexOfKey("Lab" + ZeTransform))
    par :
    Con = Page.Master.FindControl("ContentPlaceHolder1").FindControl("Lab" & ZeTransform)
    Et ca marche
    J'ai eu du mal avec le "Page.Master", heureusement que j'ai trouvé un post à ce sujet dans le forum...

    Donc pb résolu, merci.

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

Discussions similaires

  1. [Débutant] Comment Remplir un DropDownList avec le noms des colonnes d'une table
    Par jérémyp8 dans le forum ASP.NET MVC
    Réponses: 4
    Dernier message: 11/02/2015, 11h55
  2. Réponses: 1
    Dernier message: 02/06/2011, 16h17
  3. Comment manipuler des lignes RichEdit avec attributs
    Par Nicolas Coolman dans le forum Débuter
    Réponses: 4
    Dernier message: 23/03/2009, 22h53
  4. Réponses: 1
    Dernier message: 19/11/2007, 23h48
  5. Comment remplir un ComboBox avec le nom des feuilles Excel ?
    Par libracom dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/06/2005, 15h14

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