Bonjour
Je veux créer un jeu d'échecs en programmation objets. Pour ce faire j'ai crée toutes les cases avec des rectangleshape, ainsi que les différentes pièces.
Coté objet, des procédures vérifient si l'abscisse et l'ordonnée de la pièce choisie permettent le déplacement du rectangleshape de l'image de la pièce sur le rectangleshape de la case choisie en second temps (ou lors du second clic).
C'est pourquoi j'ai pensé récupérer dans des variables les abscisses et ordonnées de la première case (la pièce) pou leur donner, si le déplacement est validé, les valeurs de la seconde case.
Ce qui en code donne :
Or cela ne fonctionne pas. On m'a suggéré que les rectangleshape étant des objets, il fallait plutôt utiliser le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 //Premier rectangleshape Private Sub PionNoirA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PionNoirA.Click x = PionNoirA.Location.X y = PionNoirA.Location.Y nomcontrole = PionNoirA.Name End Sub //Second rectangleshape For Each Control In Me.Controls If Control.name = nomcontrole Then Control.location.x = x Control.location.y = y End If Next
Mais j'ignore à quoi fait réference ce "Grid1.Children". Peut-être pouvez-vous m'aider sur ce point
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 For Each o As Object In Me.Grid1.Children If o.GetType() = GetType(System.Windows.Shapes.Rectangle) Then If CType(o, Rectangle).Name = "Rectangle1" Then Console.WriteLine(CType(o, Rectangle).Name) End If End If Next
Merci
Partager