Public Class Form1 Dim Panel1 As Panel = New Panel Dim Bouton() As Button Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Controls.Add(Panel1) For i As Integer = 0 To 3 ReDim Preserve Bouton(i) Bouton(i) = New Button Bouton(i).Text = "Bouton " & i.ToString If i > 0 Then Bouton(i).Top = Bouton(i - 1).Top + Bouton(i).Height AddHandler Bouton(i).Click, AddressOf Bouton_Click Me.Panel1.Controls.Add(Bouton(i)) Next End Sub Private Sub Bouton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim Index As Integer = Panel1.Controls.IndexOf(sender) Me.Text "BOUTON " & Index End Sub End Class
Private Sub Bouton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) messagebox.show("bouton " & directcast(sender,button).tag.tostring) End Sub
Bouton(i).Text = "Bouton " & i.ToString
Dim Index As Integer = Panel1.Controls.IndexOf(sender)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPublic Class Form1 'on crée un nouvel Panel pour acceuilir les bouton Dim Panel1 As Panel = New Panel 'on crée un groupe de boutons (vide) Dim Bouton() As Button Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Controls.Add(Panel1)' on ajoute le contrôle Panel1 à la Form1 (Me) For i As Integer = 0 To 3 'on traite 4 boutons (0 à 3) ReDim Preserve Bouton(i)'on dimensionne le nouvel bouton Bouton(i) = New Button 'on crée le nouvel bouton 'On a pas besoin de lui écrire un texte... 'Bouton(i).Text = "Bouton " & i.ToString 'on les place à la suite (sinon ils vont se chevaucher) If i > 0 Then Bouton(i).Top = Bouton(i - 1).Top + Bouton(i).Height 'on lui attribue le Handler pour gérer le Click AddHandler Bouton(i).Click, AddressOf Bouton_Click 'on l'ajoute comme contrôle au Panel1 Me.Panel1.Controls.Add(Bouton(i)) Next End Sub Private Sub Bouton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'on lit son index par rapport au groupe de contrôles contenus dans le Panel1 Dim Index As Integer = Panel1.Controls.IndexOf(sender) Me.Text "BOUTON " & Index End Sub End Class
Dim Index As Integer = Panel1.Controls.IndexOf(sender)
Dim Index As Integer = Panel1.Controls.IndexOf(CType(sender, Control
private Panel1 As Panel = New Panel private Bouton() As Button private labels() As Label Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Controls.Add(Panel1) For i As Integer = 0 To 3 ReDim Preserve Bouton(i) Bouton(i) = New Button Bouton(i).Text = "Bouton " & i.ToString If i > 0 Then Bouton(i).Top = Bouton(i - 1).Top + Bouton(i).Height AddHandler Bouton(i).Click, AddressOf Bouton_Click Me.Panel1.Controls.Add(Bouton(i)) ReDim Preserve labels(i) labels(i) = New Label labels(i).Left = Bouton(i).Right + 3 labels(i).Text = "LABEL " & i.ToString If i > 0 Then labels(i).Top = labels(i - 1).Top + labels(i).Height AddHandler labels(i).Click, AddressOf labels_Click Me.Panel1.Controls.Add(labels(i)) Next end sub Private Sub Bouton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim Index As Integer = Panel1.Controls.IndexOf(CType(sender, Control)) MessageBox.Show("BOUTON = " & Index) End Sub Private Sub labels_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim Index As Integer = Panel1.Controls.IndexOf(CType(sender, Control)) MessageBox.Show("LABEL = " & Index) End Sub
Dim Index As Integer = Panel1.Controls.IndexOf(sender)
me donne une erreur
index = me.controls.adressof(sender)
For i As Integer = 1 To 3 Me.Controls("Button" & i.ToString).Text = i.ToString Next
et ne peut on pas récupérer l'index du control qui a le focus?
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Controls.Add(Panel1) ' on ajoute le contrôle Panel1 à la Form1 (Me) For i As Integer = 0 To 3 'on traite 4 boutons (0 à 3) ReDim Preserve Bouton(i) 'on dimensionne le nouvel bouton Bouton(i) = New Button 'on crée le nouvel bouton 'on les place à la suite (sinon ils vont se chevaucher) If i > 0 Then Bouton(i).Top = Bouton(i - 1).Top + Bouton(i).Height 'on lui attribue le Handler pour gérer le Click AddHandler Bouton(i).Click, AddressOf Bouton_Click AddHandler Bouton(i).GotFocus, AddressOf Bouton_GotFocus 'on l'ajoute comme contrôle au Panel1 Me.Panel1.Controls.Add(Bouton(i)) Next End Sub Private Sub Bouton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub Bouton_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Dim Index As Integer = Panel1.Controls.IndexOf(CType(sender, Control)) Me.Text = Index End Sub
Public Class Form1
Dim Panel1 As Panel = New Panel
Dim Bouton() As Button
Dim Index as integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Controls.Add(Panel1)
For i As Integer = 0 To 3
Index=i
ReDim Preserve Bouton(i)
Bouton(i) = New Button
Bouton(i).Text = "Bouton " & i.ToString
Bouton(i).tag = index
If i > 0 Then Bouton(i).Top = Bouton(i - 1).Top + Bouton(i).Height
AddHandler Bouton(i).Click, AddressOf Bouton_Click
Me.Panel1.Controls.Add(Bouton(i))
Next
End Sub
Private Sub Bouton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim cbouton As Button = DirectCast(sender, Button)
Index = Integer.Parse(cbouton.Tag)
MessageBox.Show("Bouton = " & Index)
End Sub
End Class