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 :

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
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
 
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
Mais j'ignore à quoi fait réference ce "Grid1.Children". Peut-être pouvez-vous m'aider sur ce point

Merci