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

Windows Forms Discussion :

[VB.NET] Le remplaçant / équivalent des groupes de contrôles


Sujet :

Windows Forms

  1. #1
    Membre régulier

    Inscrit en
    Décembre 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 85
    Points : 104
    Points
    104
    Par défaut [VB.NET] Le remplaçant / équivalent des groupes de contrôles
    Bonjour,

    Lorsque l'on développe en Visual BAsic 5, pour créer des controles en cours d'exécution (par exemple des zones de texte), je crois que le moyen le plus simple était de créer une premiere zone de texte (pour notre exemple) en lui mettant l'option "groupe", apres, il suffisais d'utiliser le nombre adequate pour apeller ce controle (TextBox1(0), TextBox1(1), ...)

    Quel est l'equivalent en VB.NET 2005 ? (ou peutetre aussi 2003)

    Merci d'avance

  2. #2
    Membre habitué Avatar de Angath
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 140
    Points : 174
    Points
    174
    Par défaut
    J'avais chercher aussi l'équivalent, mais, je me trompe peut-etre, il n'y en a pas.

    Tu peux par contre utiliser la collection Controls de ta form pour énumérer tous les controls de ta form en utilisant une structure du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim m_control as Control
    For each m_control in taFrm.controls
      If m_control.name = "textbox1" then    'Par ex tu peux tester le type aussi
      ....
      end if
    Next
    Pour ajouter un control en dynamique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim m_textbox as Textbox
    m_textbox = New Textbox
    taFrm.Controls.add(m_textbox)

  3. #3
    Membre régulier

    Inscrit en
    Décembre 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 85
    Points : 104
    Points
    104
    Par défaut
    euh... oui mais la il faut donner un nom pour chaque controle créé... c pas ce que je recherche.

    Si je veux en créer 100 ... je fait comment ?

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim MaTextBox As TextBox, CollTextBox As New Collection
    For cmpt As Int32 = 1 To 100
        MaTextBox = New TextBox
        Me.Controls.Add(MaTextBox)
        CollTextBox.Add(MaTextBox)
    Next

  5. #5
    Membre habitué Avatar de Angath
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 140
    Points : 174
    Points
    174
    Par défaut
    Je pense que tu as la réponse

    Je t'avais donné le principe de base, après bien-sur faut l'appliquer à ton cas

  6. #6
    Membre régulier

    Inscrit en
    Décembre 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 85
    Points : 104
    Points
    104
    Par défaut
    Ok merci, ca marche, j'avais pas pensé qu'on pouvais changer le nom en cours de route...

    Mais maintenant, le problème c'est d'associer un bout de code a un événement consernant un controle crée dynamiquement....

    par exemple, je crée une picture box, comment faire pour mettre un bout de code dans l'instruction PictureBox1_click .... ?
    dans l'ancienne version de VB, tous les controles issu du meme groupe de controle avaient memes evenements... mais la, comment faire ?

  7. #7
    Membre régulier

    Inscrit en
    Décembre 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 85
    Points : 104
    Points
    104
    Par défaut
    personne ?

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Quest-ce que tu appelles groupe de contrôles, ne seraitce pas ici un UserControl

    Sinon pour abonner dynamiquement les evenements des contrôles à un Delegué , tu peux proceder ainsi par exemple
    Imaginons que je crée plusieurs boutons à la suite en vertical
    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
     
    Option Explicit On
    Option Strict On
     
    Imports Microsoft.VisualBasic
    Imports System
    Imports System.Drawing
    Imports System.Windows.Forms
     
    Public Enum Actions
      Annuler =0
      Ouvrir = 1
      Fermer = 2
      Enregistrer = 3
      Nouveau = 4
      Modifier = 5
      Quitter = 6
    End Enum
    Private Sub InitializeButtons()
      Const name As String = "Bouton"
      Const x As Integer = 490  'coordonnée x
     
      Dim b As Button
      Dim y As Integer = 7   'coordonnée y
      Dim s As Size = New Size(70, 21)
      Dim index As Integer
      Dim noms() As String = [Enum].GetNames(GetType(Actions))
     
      For index = 0 To noms.Length - 1
         'Instancier le nouveau bouton
         b = New Button()
     
         'paramétrer le bouton
         b.Location = New System.Drawing.Point(x, y)
         b.Name = name & index.ToString
         b.Size = s
         b.TabIndex = index
         b.Tag = [Enum].GetValues(GetType(Actions)).GetValue(index)
         b.Text = noms(index)
     
         'abonner l'evenement à son délégué
         AddHandler b.Click, AddressOf Me.MesBoutons_Click
     
         'ajouter le bouton au formulaire
         Me.Controls.Add(b)  
     
         'incrementer la coordonnée y
         y += 28
       Next
    End Sub
     
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        Me.InitializeButtons()
    End Sub
     
    'Un seul Delegué pour les clicks des boutons
    Private Sub MesBoutons_Click(ByVal sender As Object, ByVal e As EventArgs)
        'Recuperer le bouton en cours
        Dim b As Button = Ctype(sender,Button)
        Select Case CType(b.Tag, Actions)
           Case Actions.Annuler 'traiter
           Case Actions.Enregistrer   'traiter
             'etc...
        End Select
    End Sub
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  9. #9
    Membre régulier

    Inscrit en
    Décembre 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 85
    Points : 104
    Points
    104
    Par défaut
    nickel chrome les gars, c'est exactement ce que je recherchais

    Surtout merci à neguib, car c pas la premiere fois que tu m'aide

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 21/11/2010, 14h44
  2. SAMBA - équivalent des [HOME] mais pour les groupes
    Par Filou07 dans le forum Administration système
    Réponses: 1
    Dernier message: 10/01/2007, 22h52
  3. [VB.NET] Sauvegarde dans TextBox des logons utilisés
    Par stephane93fr dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/10/2005, 11h00
  4. [VB.NET]La bonne gestion des forms
    Par Wintermute dans le forum Windows Forms
    Réponses: 11
    Dernier message: 13/01/2004, 16h35
  5. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01

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