begin process at 2012 02 12 10:34:57
  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é :10 269 / 779

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 .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source .NET (Dotnet) AMUSONS NOUS AVEC UN LABEL ^^ par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) UN NAVIGATEUR INTERNET EN VB.NET par azrti
Source avec Zip Source .NET (Dotnet) CONVERSION DE DEVISE MONAITAIRE VIA UN SERVICE WEB par bigmonkey7

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

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,045 sec (3)

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