begin process at 2010 02 10 16:06:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VB.NET

 > AJOUTER CONTROLES DYNAMIQUEMENT EN VB.NET

AJOUTER CONTROLES DYNAMIQUEMENT EN VB.NET


 Information sur la source

Note :
9,13 / 10 - par 8 personnes
9,13 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :VB.NET Source .NET ( DotNet ) Niveau :Débutant Date de création :09/01/2003 Date de mise à jour :09/01/2003 22:22:10 Vu / téléchargé :8 853 / 723

Auteur : hvb

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note


 Description

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

  • 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
    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.  

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) FOND DE FEUILLE ANIMÉ : DÉGRADÉ MOUVANT POUR ABOUT OU SPLASH...
Source avec Zip Source avec une capture Source .NET (Dotnet) FONT VIEWER : VISIONNEUSE DE POLICES SYSTEMES.
Source avec Zip Source avec une capture Source .NET (Dotnet) HBSNAPSHOTERV3.0 : GESTIONNAIRE DE CAPTURES D'ÉCRAN
Source avec Zip Source avec une capture Source .NET (Dotnet) JEU : PICROSS OU "PUZZLE JAPONAIS"
Source avec Zip Source .NET (Dotnet) [.NET2] COMPRESSION/DÉCOMPRESSION GZIP DE FICHIER GRÂCE À IO...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) INSERER TOUT TYPE DE FICHIERS DANS ORACLE EN VB.NET par SKY32
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOYER DES EMAILS AVEC PIECES JOINTES EN EXÉCUTANT BLAT par mays
Source avec Zip Source avec une capture Source .NET (Dotnet) PILOTER DES AFFICHEURS 7 SEGMENTS À PARTIR DU PORT SÉRIE OU ... par mays
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLER LE WEBBROWSER ET IDENTIFIER LES LIENS PAR LEUR NUM... par george02
Source avec Zip Source .NET (Dotnet) LOGIN AVEC FICHIER XML par DanMor498

Commentaires et avis

Commentaire de arlodvig le 09/01/2003 23:11:39

très très utile Bravo

Commentaire de Demin le 15/01/2003 18:13:33

un bon petit exemple à garder en test unitaire... merci
Au fait bouton en français c'est un "t" !

Commentaire de yomm le 19/05/2004 18:52:44

merci à toi !!!

Commentaire de whiskygt le 14/09/2004 14:05:59

merci bocoup
Dommage que ca ne marche po avec les menuitems ...

Commentaire de reno184 le 31/05/2005 01:33:12

Super code ! très clair !

En revanche sais-tu faire apparaitre dans le label l'evenement utilisé ???

Par exemple si je fais button.lostfocus j'aimerais voir apparaitre automatiquement "lostfocus" écrit dans le label

merci


renaud

Commentaire de lerak le 27/06/2005 14:30:40

Et j'ajouterais que même pour Visual 2005, il ne suffit que de quelques correction de syntaxe au moment de la création de l'objet pour que celà puisse fonctionner parfaitement
Merci

Commentaire de swan94 le 14/04/2006 12:17:03

Merci très utile.
J'ai une question :
Comment pouvoir faire une boucle ? :

For i = 1 to 5
... 'Afficher un textbox à chaque fois
Next i

Merci

Commentaire de gbonamy le 01/06/2008 23:15:03 10/10

Super exemple très compréhensible.
Grand merci

Commentaire de Dmikael le 15/05/2009 14:41:51

Salut, cette source est trés bien mais y'a t'il moyen de sauver l'état de la form modifiée ???

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales