Salut à tous,
Voici un problème probablement assez pointu.
(Application Winform, framework 3.5, éventuellement compatible 2.0 mais c'est pas obligé)
Soit un certain nombre de type de contrôle différents mais ayant tous en commun une propriété nommé ProprieteMagique. Tous ces contrôles héritent de la classe générique Control, et font partis de mon écran :
J'ai besoin de modifier cette propriété sur l'ensemble des contrôles sans forcément en gérer leur type. L'idée est de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim A As New MonTypeCtrl1 Dim B As New MonTypeCtrl2 Dim C As New MonTypeCtrl3 Dim ..... Me.Controls.AddRange(New Control() {A, B, C, ....})
Bien évidemment cela ne marche pas. ProprieteMagique n'est pas une propriété de Control, mais d'une des classes dérivées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 For Each ctrl As Control In Me.Controls ctrl.ProprieteMagique = MaNouvelleValeur Next
Pourtant la variable ctrl, bien que de type Control, contient un objet d'un des types qui gèrent cette propriété. Comment je peux donc accéder à cette propriété à travers la variable Control ???
(Gérer le type des contrôles n'est pas trop envisageable, car il y déjà plus d'une dizaine de type, et c'est pas fini)
L'idée serait (peut-être) de pouvoir faire quelque chose du genre :
Je n'imagine pas que ce ne soit pas possible en .Net d'autant plus que ça existe en standard dans d'autres langages Objet, mais je n'arrive pas à trouver un soupçon de solution dans le framework.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ctrl.PropertyByName("ProprieteMagique")
Ça me semble pourtant être une fonctionnalité de base en POO
Partager