bonjour,
je débute un peu dans la POO et je galère un peu avec mon code

je dois concevoir un logiciel dans le même style que visual studio visuellement parlant, je dois faire une barre d'outil sur le coté avec des objets à ajouter dans la form main principale, l'objet(i) s'affiche graphiquement sous forme d'une image(i), quand je double clique sur l'image(i), je dois avoir les paramètres de l'objet(i) qui s'affiche dans une form(i). Dans cette form(i) j'ai un bouton qui "hide" (cache) la form(i) pour revenir sur la form main.

Je crée mes objet(i), mes image(i) et mes form(i) dynamiquement :

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
dim o as objet
dim image as picturebox
dim form0 as form
dim i as integer = 0
 
Private Sub b_CréerObjet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_CréerObjet.Click
 
        i += 1
 
        'création d'un nouvel objet
        o = New objet
        o.name = "objet" & "(" & i & ")"
 
        'Création d'une image objet
        image = New PictureBox
 
        With image
            .Name = "image" & "(" & i & ")"
            .ClientSize = New Size(80, 80)
            .SizeMode = PictureBoxSizeMode.StretchImage
            .ImageLocation = "...\ismart.jpg"
            .Top = 71
            .Left = 420
        End With
 
        AddHandler image.MouseDown, AddressOf PictureBox_MouseDown
        AddHandler image.MouseMove, AddressOf PictureBox_MouseMove
        AddHandler image.DoubleClick, AddressOf PictureBox_DoubleClick
 
        Me.Controls.Add(image)
 
        'création et affichage de la form
        form0 = New ParametreAutom
        form0.Name = "form " & "(" & i & ")"
        form0.Text = "Ajouter un objet"
        form0.Show()
 
 
 
    End Sub
#Region "Evènements sur les objets"
 
'les 2 évènements suivant permettent de déplacer une image avec la souris
    Dim x As Integer
    Dim y As Integer
 
    Private Sub PictureBox_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        If e.Button = Windows.Forms.MouseButtons.Left Then
            x = e.X
            y = e.Y
        End If
    End Sub
 
    Private Sub PictureBox_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        If e.Button = Windows.Forms.MouseButtons.Left Then
            sender.Left += (e.X - x)
            sender.Top += (e.Y - y)
        End If
    End Sub
 
 
 
'cet évènement doit ouvrir la form de paramètre de l'objet concerné par le doubleclick
'fen.show() m'ouvre la dernière form crée et pas la form de l'objet concerné par le doubleclick
'je ne sais pas comment accéder à la form de l'objet concerné par le le doubleclick
    Private Sub PictureBox_DoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        form0.show()
    End Sub
 
#End Region
pour mon problème tout est dit dans le code en commentaire sur la dernière sub des évènements à la fin

par exemple je crée un objet1 avec une image1 qui m'ouvre un form1, je crée un objet2 avec une image2 qui m'ouvre une form2
je hide form1 et form2, quand je doubleclick sur image1 ça m'ouvre form2 et pas form1 ...

comment accéder à un objet instancié dynamiquement sachant qu'il n'existe pas encore et comment connaître son nom ?

sinon comment "lier" la form et l'image à l'objet instancié ? dans la class objet ?