Ce code permet d'ajouter n'importe quel objet a votre form et d'en definir ses evenements.
J'ai mis deux exemples bidons avec buttons et textboxs.
Si vous ne téléchargez pas le zip, ajoutez simplement trois bouttons (qui garderont leurs noms d'origine) et un label nommé Label... touts 4 placés de preference en bas d'une form assez large.
Source / Exemple :
Private nbrbtn As Integer = 0 'variable qui nous servira de compteur pour les bouttons
Private nbrtxt As Integer = 0 'variable qui nous servira de compteur pour les textbox
'CREER BOUTTONS :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim nvxbtn As New Button()
'on definie les proprietés du nouveaux boutton :
'----------------------------------------------------
nvxbtn.Name = "NewButton" + (nbrbtn + 1).ToString() 'defini le nom du boutton
nvxbtn.Text = "NewButton" + (nbrbtn + 1).ToString() 'defini le text du boutton
nvxbtn.Width = 100 'on definit la taille horizontale du boutton
nvxbtn.Height = 20 'on definit la taille verticale du boutton
nvxbtn.Top = nbrbtn * nvxbtn.Height 'on multiplie le compteur par la proprieté Height du boutton pour definir la position verticale et que les bouttons ne soit pas superposés
nvxbtn.Left = 0 'je met et garde tjrs la valeur à 0 pour aligner horizontalement les bouttons
'-----------------------------------------------------
Controls.Add(nvxbtn) ' Ajoute le controle à la collection
AddHandler nvxbtn.Click, AddressOf nvbtnHandler_Click ' ajoute l'evenement myButtonHandler_Click au controle
nbrbtn += 1 'on incremente le compteur de 1
End Sub
Private Sub nvbtnHandler_Click(ByVal sender As Object, ByVal e As EventArgs)
'affiche le nom du boutton qui a été cliqué
MsgBox(CType(sender, Button).Text + " a été cliqué")
End Sub
'CREER TEXTBOXS :
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim nvxtxt As New TextBox()
'on definie les proprietés du nouveaux boutton :
'----------------------------------------------------
nvxtxt.Name = "NewText" + (nbrtxt + 1).ToString() 'defini le nom du text
nvxtxt.Text = "" 'defini la valeur du textbox vide
nvxtxt.Width = 50 'on defini la taille horizontale du textbox
nvxtxt.Height = 20 'on defini la taille verticale du textbox
nvxtxt.Top = 150 'je met et garde tjrs la valeur à 150 pour aligner verticalement les textbox
nvxtxt.Left = nbrtxt * nvxtxt.Width 'on multiplie le compteur par la proprieté Width du textbox pour definir la position verticale et que les textbox ne soit pas superposés
'-----------------------------------------------------
Controls.Add(nvxtxt) ' Ajoute le controle à la collection
AddHandler nvxtxt.TextChanged, AddressOf nvtxtHandler_TextChanged ' ajoute l'evenement nvtxtHandler_TextChanged au controle
nbrtxt += 1 'on incremente le compteur de 1
End Sub
Private Sub nvtxtHandler_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
'affiche dans le Label le nom du textbox et sa valeur lorsque un utilisateur tappe du texte
Label.Text = CType(sender, TextBox).Name & " : " & CType(sender, TextBox).Text
End Sub
'Suppression / Réinitialisation
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'on reinitialise tout ! :
nbrbtn = 0 'on reinitialise nbrbtn
nbrtxt = 0 'on reinitialise nbrxt
Controls.Clear() 'on supprime tous les controles
InitializeComponent() 'on replace les controles d'origine
Show() 'on montre à nouveau la feuille
End Sub
Conclusion :
Voila, en esperant que cela puisse servir.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.