Option Strict On Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'on veut intégrer 11 groupbox au formulaire For x = 10 To 0 Step -1 'nouveau groupbox Dim box As New GroupBox 'nom position box.Name = "box" & x.ToString box.Left = x * 15 'abonnement à l'événement click AddHandler box.Click, AddressOf box_click 'ajout au formulaire Me.Controls.Add(box) Next MessageBox.Show("cliquer sur un groupbox") End Sub Private Sub box_click(ByVal sender As Object, ByVal e As EventArgs) 'il faut ici caster l'objet sender dans le bon type (qu'on connait) pour accéder 'à ses propriétés, méthodes etc... MessageBox.Show(DirectCast(sender, GroupBox).Name & " vient d'etre cliqué") End Sub End Class
Par contre, j'aurais voulu que lorsque je clique sur une des GroupBox de ma liste, je puisse déclancher une action sans devoir écrire cette action dans chaque GroupBox.
Option Strict On Public Class Form1 Dim Liste As New List(Of GroupBox) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For x = 10 To 0 Step -1 Dim box As New GroupBox box.Name = "box" & x.ToString box.Left = x * 15 AddHandler box.Click, AddressOf box_click Liste.Add(box) Me.Controls.Add(box) Next MessageBox.Show("cliquer sur un groupbox") End Sub Private Sub box_click(ByVal sender As Object, ByVal e As EventArgs) Dim box As GroupBox = DirectCast(sender, GroupBox) Dim index As Integer = Liste.IndexOf(box) MessageBox.Show(index.ToString) End Sub End Class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question