Bonjour,

Je cherche à créer une collection d'objets logiques (button(3)), je sais créer logiquement, je sais créer une collection, mais la liaison des deux, j'avoues que je suis dépassé, je n'ai jamais fait ! Voici le code, comme susdit le but est de créer une collection en trois exemplaires d'un objet Button b(3), suivront les questions ...

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
 
 
Option Explicit On
Public Class Form1
 
 Dim WithEvents b As New Collection()
 
Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
 b.Add(Me.b(1))
 b.Add(Me.b(2))
 b.Add(Me.b(3))
 
 Controls.AddRange(New System.Windows.Forms.Control() {b(3)})
 '
 Dim i As Integer
 b(1).top = 10
 b(2).top = b(1).top + 30
 b(3).top = b(2).top + 30
 b(1).text = "gris Vertical"
 b(2).text = "gris Horizontal"
 b(3).text = "rouge Vertical"
 For i = 1 To 3
  b(i).sizable = True
  b(i).left = 10
 Next i
 '
 Me.Left = 10
 Me.Top = Me.Left
 Me.Width = 450
 Me.Height = 300
End Sub
 
 
 
Sub b_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b(1).click, b(2).Click, b(3).Click
 
 bouton(3) = b(3)
 
End Sub
End Class
Questions

-1- Déja la déclaration logique, je ne sais pas où, ni même s'il faut y mettre un index b(3), et encore moins si on peut associer WithEvents avec Collection() ?

Dim WithEvents b As New Collection()

-2- Ensuite, sur Controls.AddRange il plante, refusant l'indice, j'ai aussi mis dans la liste de la collection "b.Add(...)", sans même savoir si c'est utile, et quelque que soit l'ordre de ces deux déclarations n'y change rien ?

-3- Reste in fine la procédure du click (b.click), je ne sais pas si c'est ainsi dans ce cas, en plus à la fin, le rajout des 3 objets logiques est refusé (b(1).click, ... je ne sais comment faire ?

Ben ça fait trois question, le mieux serait peut être de recopier le texte et de le lancer sur votre ordinateur, tout étant logique, ainsi on voit mieux les solution éventuelles ...

Merci, cordialement.
.