Je reviens vers vous après avoir tenté de suivre les conseils qui m’ont été prodigués sur la façon de codifier mon projet qui consiste (en gros) à déplacer une PictureBox dans une fenêtre. Pour cela j’ai redémarré un projet dans lequel :
L’application démarre sur la Fenêtre (le Form1 standard)
J’ai créé un module de classe Cellules pour instancier des cellules avec constructeur, propriétés et méthode, qui contient la Picturebox dont voici le code :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Public Class Cellules
    Private _monNom As String                   'nom de la cellule
    Private Shared _notreNombre As Integer = 0  'nombre de cellules
    Private _monCadre As New PictureBox         'contient le dessin de la cellule
    Private _maDirection As Orientation         'direction dans laquelle se déplace la cellule
 
    Public Sub New()
        'initialise la cellule lors de sa création
        _notreNombre += 1
        _monCadre.BackgroundImage = My.Resources.Cellule_Est
        _maDirection = Orientation.Est
    End Sub
 
    Public Property Nom() As String
        Get
            Return _monNom
        End Get
        Set(ByVal value As String)
            _monNom = value
        End Set
    End Property
 
    Public Property Cadre() As PictureBox
        Get
            Return _monCadre
        End Get
        Set(ByVal value As PictureBox)
            _monCadre = value
        End Set
    End Property
 
    Public Sub Affiche()
        Me._monCadre.Refresh()
    End Sub
End Class
Je crée LaCellule dans la Fenêtre, ce qui 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
Public Class Fenêtre
    Public LaCellule As New Cellules
 
    Private Sub Fenêtre_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'initialisation
        With Me
            .Width = 800
            .Height = 600
            .Location = New Point(100, 100)
            .BackColor = Color.White
        End With
    End Sub
 
End Class
Ce que j'ai mis en place, pour l'instant est-il correct ?
Je ne vois pas où et comment je pourrais faire figurer le code d’affichage de la PictureBox de la cellule, du genre Fenêtre.LaCellule.Affiche().
Pourriez-vous me venir en aide ?
Merci

P.S. Par souci de clarté pour ma question j'ai limité le projet uniquement sur ce point. Dans ce cas précis il serait trivial de créer la PictureBox directement dans la fenêtre, ce n'est pas l'objectif.