[VB.NET] Obtenir un objet à partir de son nom
Bonjour,
Est-il possible d'obtenir un objet à partir de son nom ?
Je m'explique :
Dans une winform, j'ai des menuItems (par exemple menuItem1).
Et je voudrais qu'à partir d'une string qui contient menuItem1, j'accède vraiment à cet objet. Un peu comme ça :
Code:
1 2
| Dim SmenuItem As String = "menuItem1"
CType(SmenuItem, menuItem).Visible = False |
Mais bien sûr, ca ne fonctionne pas.
Avez-vous une idée ?
Je vois cette solution mais je voudrais éviter la boucle qui prendrait trop de temps (et surtout connaitre une vraie solution) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Private Function CObj(ByVal Name As String) As Object
Dim frm As Form, Ctrl As Control
For Each frm In Forms
If frm.Name = Name Then
Set CObj = frm
Exit Function
End If
For Each Ctrl In frm.Controls
If Ctrl.Name = Name Then
Set CObj = Ctrl
Exit Function
End If
Next Ctrl
Next frm
End Function |
Edit : cette solution ne fonctionne pas.
Merci d'avance.