Comment créer une collection d'objets logiques ?
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:
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.
.
collection,liste,indice 0
bonjour
sache simplement pour te mettre à jour que Collection est un residu de l'ancien Visual Basic 6 et VBA.
Dans vb.net tous les indices partent à zero.Tableau,liste,dictionnaire et autres Generics Lists.
A bon entendeur ...
bon code...