Accéder à un UserControl dans un FlowLayoutPanel

Shaegal
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
- 16 janv. 2019 à 19:00
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
- 16 janv. 2019 à 22:00
Bonjour à toutes et tous,

Tout d'abord, je vous souhaite mes meilleurs vœux pour cette nouvelle année.

Pour commencer, le décor.
Je créer un calendrier perpétuel (du moins jusque l'an 2300) destiné à gérer les congés de l'équipe. Dès le lancement de l'application, le calendrier se créé de la façon suivante dans un FlowLayoutPanel (flp):

1 - Création des UserControl (uc) "Mois" de Janvier à Janvier contenants eux-même un flp pour les quantièmes du mois (flpCalendrier.Controls.Add(ucMois)).
2 - Chaque mois créé ses uc "Quantièmes" tous nommés avec 3 Label (lbl) (flpMois.Controls.Add(ucQuantième))



Dès qu'un utilisateur se logue, j'aimerai qu'il puisse afficher/modifier/supprimer directement ses congés dans les ucQuantièmes, sans être obligé de passer par les conteneurs parents. Juste grâce à son nom.

Est-ce possible ? Et si oui, une idée ?

Merci d'avance... ;-)

1 réponse

Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
Modifié le 16 janv. 2019 à 22:01
Bonsoir
Si je comprends bien tu as par exemple un UC qui s'appelle UCJanvier.
Parmi les contrôles de ce flp, il y en a un qui s'appelle flp26.
Et dans ce dernier flp, il y a 3 label lbl1, lbl2 et lbl3.

Et tu veux faire un truc du genre {le lbl2 du flp26 du flpJanvier aura pour texte "coucou"}

    Dim monUc As UC = flpCalendrier.Controls.Single(Function(x) x.Name = "UCJanvier")
    Dim jour As FlowLayoutPanel = monUc.flp.Controls.Single(Function(x) x.Name = "flp26")
    Dim monLabel As Label = jour.Controls.Single(Function(x) x.Name = "lbl2")
    monLabel.Text = "Coucou"


ou réduit
flpCalendrier.Controls.Single(Function(x) x.Name = "UCJanvier").flp.Controls.Single(Function(x) x.Name = "flp26").Controls.Single(Function(x) x.Name = "lbl2").Text = "Coucou"


J'ai tapé de tête, y'a p'tet des boulettes

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0