Variable dans un nom d'objet
Bonjour,
Je sollicite votre aide car je n'arrive pas à faire la chose suivante :
J'ai un ensemble de RectangleShape dans une form appelé Case1, Case2, Case3, ...., Case13
Ce que je souhaiterais, c'est que sur un évènement mousedown sur un de ces rectangle, je passe dans une fonction qui modifie la position de ce dernier.
Actuellement, pour chaque rectangle shape je fais la chose suivante :
Code:
1 2 3 4 5 6 7 8 9 10
|
Private Sub Case1_Click(sender As Object, e As EventArgs) Handles Case1.MouseDown
If Case1.Location <> InitLoc1 Then
Case1.Location = InitLoc1
Else
Case1.Top = Case1.Location.Y - 90
End If
End Sub |
(InitLoc1 est initialisé au load de ma form).
Du coup plutôt que d'écrire 13 fois la même chose, je souhaiterai passer dans une fonction ou sub.
J'imaginais en gros la chose suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Private Sub Case1_Click(sender As Object, e As EventArgs) Handles Case1.MouseDown
MoveRect(1)
End Sub
Private Sub MoveRect(NumRect as integer)
If Case(NumRect).Location <> InitLoc(NumRect) Then
Case(NumRect).Location = InitLoc(NumRect)
Else
Case(NumRect).Top = Case(NumRect).Location.Y - 90
End If
End sub |
Bien sûr ça ne fonctionne pas comme ça, mais c'est pour vous donner une idée de ce que j'aimerai faire.
J'ai également essayé avec
Code:
1 2 3 4 5 6
|
For Each c As Control In Me.Controls
If c.name = "Case" & NumRect
c.location = ....
Next |
Mais la mon souci est pour récupérer la variable InitLoc en fonction du nom.
Et en plus ça n'a pas l'air de fonctionner avec des rectangleshape.
Auriez vous des pistes à me donner ?
Merci d'avance