Conversion d'une chaine en "Formule" sur VB

Fermé
Nico - 2 févr. 2011 à 22:49
 Nico - 4 févr. 2011 à 17:51
Bonjour,

En fait , je me suis "initié" au VB.net depuis peu de temps, et je me demandait si on pouvait pas "transformer" une variable string en formule. Par exemple, je déclare un tableau qui serait comme ceci:

Dim Objets() As String = {"Pictureboxbox1.Load", "Picturebox2.Load", "Picturebox3.Load"}

Et puis après, à un moment du programme, j'aimerais que l'ordinateur choisisse une chaine dans la liste, et qu'il considère cette chaine comme la FORMULE (ou l'objet, appellez ça comme vous voudrez) Picturebox1.Load et non comme la chaine "Picturebox1.Load".
Je sais pas si ce que je demande est débile, mais je vois pas du tout comment on s'y prend.

A voir également:

3 réponses

Pourquoi ne pas simplement faire une liste d'objet?

D'ailleurs, ce sont tous des PictureBox, j'imagine qu'ils partagent tous une classe de base ou un interface commun qui implémente la fonction Load?

Alors, pourquoi ne pas faire une liste de cette classe de base / interface ?

Ensuite, tu n'aurais qu'à faire une variable du type de l'interface ou classe de base.

Tu lui assignes l'élément de la liste à l'index sélectionné par ton programme.

Puis tu fais taVariable.Load.
0
Je viens d'essayer, et lorsque je déclare le tableau:

Dim List() As String = {Picturebox1, Picturebox2, Picturebox3}

On me dit que l'objet Picturebox1 ne pouvait pas être convertie en chaine (en gros il me prend encore une fois Picturebox1 comme la chaine, et pas l'objet).
J'ai réessayé en déclarant: Dim a As Object = Picturebox1
Pour ensuite faire une nouvelle liste:
Dim List() As String = {a, b, c}
Mais il me dit la même chose...
0
J'ai aussi essayé ceci:

Dim List() As string {"Picturebox1", "Picturebox2", "Picturebox3"}
Dim A As Object = CObj(List(0))

A.Load ("Mon image.jpg")

Mais il me dit encore "Le membre public 'Load' du type 'String' est introuvable.", alors que j'ai déclaré A comme objet.
ça marche pas parce que j'utilise mal la fonction CObj, ou parceque cette fonction n'est pas appropriée à ce que je veux faire?
0