IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Ajout à l'infini de groupe box [Débutant]


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Ajout à l'infini de groupe box
    Bonjour,

    J'aimerais savoir comment, à partir d'un bouton, l'utilisateur pourrait ajouter un infini de groupe box. Et que à chaque ajout, il y ait une numérotation automatique du groupe box.

    Ci-joint, une capture d'écran de mon projet donc plus concrètement :
    - Je voudrais que quand je clique sur le bouton +, il y ait un nouveau groupe box identique (par exemple : avion ou ligne) qui s'affiche en dessous.
    - Et qu'à chaque groupe box créait, il y ait une numérotation automatique (du genre avion #1, avion #2, etc ...)

    Je suis débutant donc merci de bien m'expliquer votre réponse.

    Merci de votre aide.
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Salut TiDic,

    - Ce que tu cherches à faire se nomme "création dynamique de contrôles".

    Voilà un exemple que je t'ai concocté avec des commentaires en prime.

    ---> 1 screen :



    ---> Le projet :

    1- Ouvre un nouveau projet de type "Windows Form"
    2- Dans l'explorateur de solutions (volet de droite), cliques sur l'icone "afficher tous les fichiers" (le 2ème)
    3- Toujours dans l'explorateur de solutions cliques sur la flèche à gauche du fichier "Form1.vb" afin de faire apparaître le fichier "Form1.Designer.vb"
    3- Supprimes le fichier "Form1.Designer.vb" ou mets en commentaire tout son contenu
    4- Ouvre le fichier "Form1" puis supprimes "Public Class Form1.........End Class"
    5- Colles ce contenu dans "Form1" :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    Public Class Form1
        Inherits System.Windows.Forms.Form
     
    #Region "DESIGNER"
        Friend WithEvents Button1 As System.Windows.Forms.Button
        Friend WithEvents Panel1 As System.Windows.Forms.Panel
        Private components As System.ComponentModel.IContainer
     
        Public Sub New()
            Me.InitializeComponent()
        End Sub
     
        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
            Try
                If disposing AndAlso components IsNot Nothing Then
                    components.Dispose()
                End If
            Finally
                MyBase.Dispose(disposing)
            End Try
        End Sub
     
        Private Sub InitializeComponent()
            Me.Button1 = New System.Windows.Forms.Button()
            Me.Panel1 = New System.Windows.Forms.Panel()
            Me.SuspendLayout()
            '
            'Button1
            '
            Me.Button1.Location = New System.Drawing.Point(12, 10)
            Me.Button1.Name = "Button1"
            Me.Button1.Size = New System.Drawing.Size(48, 37)
            Me.Button1.TabIndex = 0
            Me.Button1.Text = "Ajouter"
            Me.Button1.UseVisualStyleBackColor = True
            '
            'Panel1
            '
            Me.Panel1.AutoScroll = True
            Me.Panel1.Location = New System.Drawing.Point(12, 57)
            Me.Panel1.Name = "Panel1"
            Me.Panel1.Size = New System.Drawing.Size(620, 350)
            Me.Panel1.TabIndex = 2
            '
            'Form1
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(644, 419)
            Me.Controls.Add(Me.Panel1)
            Me.Controls.Add(Me.Button1)
            Me.Name = "Form1"
            Me.Text = "Form1"
            Me.ResumeLayout(False)
        End Sub
     
    #End Region
     
        'variable d'incrémentation pour le nommage unique des contrôles
        Private gbIncrement As Integer = 0
     
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
     
            ' creation Gbox
            Dim gb As New GroupBox
            ' création dynamique du label1 dans le Gbox 
            Dim Lbl1 As New System.Windows.Forms.Label()
            Lbl1.AutoSize = True
            Lbl1.Location = New System.Drawing.Point(21, 31)
            Lbl1.Name = "LB_" & gbIncrement.ToString
            Lbl1.Size = New System.Drawing.Size(39, 13)
            Lbl1.TabIndex = 0
            Lbl1.Text = "LB_" & gbIncrement.ToString
            Lbl1.Tag = "LB_" & gbIncrement.ToString
     
            ' création dynamique du TextBox1 dans le Gbox 
            Dim txb1 As New System.Windows.Forms.TextBox()
            txb1.Location = New System.Drawing.Point(76, 28)
            ' On donne un nom unique au contrôle grace à la variable d'incrémentation "gbIncrement" (ATTENTION : nommage unique obligatoire sinon les gestionnaires d'évènements ne fonctionnent pas !!!)
            txb1.Name = "TXB_" & gbIncrement.ToString
            txb1.Size = New System.Drawing.Size(516, 20)
            txb1.TabIndex = 1
            txb1.Tag = "TXB_" & gbIncrement.ToString
            ' Association du gestionnaire d'évènements "TextBox1.TextChanged" à la Sub TextBox1_TextChanged
            AddHandler txb1.TextChanged, AddressOf TextBox1_TextChanged
     
            'Ajout des controles créés plus haut au container principal qui est le GroupBox
            gb.Controls.Add(txb1)
            gb.Controls.Add(Lbl1)
            gb.Size = New System.Drawing.Size(614, 94)
            gb.TabIndex = 1
            gb.TabStop = False
            gb.Name = "GB_" & gbIncrement.ToString
            gb.Text = "GB_" & gbIncrement.ToString
            gb.Location = New Point(3, (gb.Height + 3) * gbIncrement)
            gb.Tag = "GB_" & gbIncrement.ToString
     
            ' Ajout du GroupBox au Panel(le panel1 est paramétré avec un scrollbar=True) 
            Me.Panel1.Controls.Add(gb)
     
            ' On incrémente la variable (Si suppression d'1 groupBox il faut penser à décrémenter cette variable !!!
            gbIncrement += 1
        End Sub
     
        ' C'est le gestionnaire d'évènement "TextChanged" de TextBox1 
        Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs)
            Dim CurrentTxb1 As TextBox = TryCast(sender, TextBox)
            MsgBox("La contenu a été modifié : " & CurrentTxb1.Text, MsgBoxStyle.OkOnly, CurrentTxb1.Name)
        End Sub
     
    End Class
    6- Génères le projet


    ---> Télécharger le projet (AnyCPU/Framework 4) : http://wallace87000.upd.fr/AddGroupBoxProject.zip


    Si tu as des questions n'hésites pas.

    A+

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    un flowlayoutpanel est plus pratique pour contenir les groupbox, ce controle dispose ses enfants l'un à côté de l'autre automatiquement dans le sens qu'on veut, pas besoin de gérer location
    de même si on en supprime un tous les autres se déplacement automatiquement
    en mettant autoscroll à True on aura le scrollbar si on met beaucoup
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Merci - Problème résolu
    Merci beaucoup pour vos réponses rapides et précises.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/04/2007, 18h11
  2. Ajout texte dans un "" text box ""word ?
    Par NANARD13 dans le forum Langage
    Réponses: 3
    Dernier message: 08/01/2006, 16h34
  3. groupe box et bordure
    Par biozaxx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/12/2005, 14h13
  4. [VB][Débutant]group box et collection de contrôles
    Par nuhuruine dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/12/2005, 15h33
  5. Ajout utilisateur à un group
    Par litbos dans le forum Administration système
    Réponses: 2
    Dernier message: 04/11/2005, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo