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 :

[VB.Net 2.0] Comment récuperer le nom d'un objet pour le modifier ?


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [VB.Net 2.0] Comment récuperer le nom d'un objet pour le modifier ?
    Bonjour, j'ai une question à 1000 points je vous explique mon problème :

    Sur une feuille, j'ai 5 label et 5 textbox, les label sont nommées : LblA, lblB, lblC, lblD, lblE et les textbox sont nommées : tbA, tbB, tbC, tbD, tbE

    les label et les textbox sont associées par couple ( lblA avec tbA etc ...)

    j'aimerai que lorsque je clique sur une textbox, la ForeColor de la label associée devienne verte. J'y arrive en definissant les evenement mouseClick pour chaque textbox, mais je souhaiterai faire une fonction générique. J'ai pour cela eu une idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public function maFonction(ByVal tb as TextBox)
      Dim maLabel as new Label
     'renseigne le bon nom pour la label
      maLabel.name = "lbl" & Mid( tb.name, 3 )maLabel.ForeColor = Color.Green
      'pour verifier que c'est bien le bon nom
      MsgBox("Nom de la label :" & maLabel.name)
    End Function
    si j'appelle la fonction avec : maFonction( tbA )

    j'obtiens bien une msgbox qui me dit : "Nom de la label : lblA"
    Mais la label sur ma feuille n'est pas modifiée

    Est-ce réalisable ? autrement qu'en tenant un tableau à 2 dimensions contenant les couples de label, textbox.

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu pourrais utiliser la propriété TAG de TextBox pour stocker le label Associé au textBox.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    J'y ai pensé mais le tag est au format text, et meme en le récupérant je ne sais pas comment faire. Je sais creer une label qui aurai le bon nom ( recuperé depuis le tag ) mais pas récuperer dans ma feuille la label avec ce nom ( autrement qu'en parcourant toutes les label et en comparant le nom à chaque fois, ca serai trop lourd).

    Merci pour ta suggestion

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Je pense qu'il serait plus judicieux d'associer le label et son textbox dans un même container (panel par exemple) et c'est celui-ci qui gèrerai les évènements sur ces contrôles enfants pour assigner leurs propriétés communes
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par pti_pierrot
    ( autrement qu'en parcourant toutes les label et en comparant le nom à chaque fois, ca serai trop lourd)
    C'est une solution, et si tu as que 10 controles, c'est vraiment pas "lourd".

    Mais la solution des containers reste la plus appropriée.

  6. #6
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Tu créer cette fonction :
    et tu l'associe à tous les evenemtn mouseClick de des textbox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TextBox txtBox = sender as TextBox;
    string controlLetter = txtBox.Name.Substring(txtBox.Name.Length - 1);
    Label lbl = Controls["lbl" + controlLetter] as Label;
    lbl.BackColor = Color.White;
    Ps : ne fonctionne que si les label ont pour nom lblX et si il n'y a qu'un caractère dans leur nom qui les distingue (A....Z)

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

Discussions similaires

  1. [Débutant] Comment récuperer le nom d'un fichier dans une variable
    Par yaume91 dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/09/2014, 13h00
  2. [SP2010] Comment récuperer le nom de la bibliothèque de document dans CQWP?
    Par dany13 dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 28/09/2011, 17h28
  3. [Tableaux] Comment récuperer le nom d'un tableau
    Par sniogleerf dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2009, 22h45
  4. Comment récuperer les noms d’imprimantes ?
    Par SCHOLLERF dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/10/2007, 20h12
  5. Réponses: 2
    Dernier message: 02/03/2006, 10h09

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