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 Création dynamique de nom d'objets


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut VB.NET Création dynamique de nom d'objets
    Bonjour à tous,

    Je cherche (désespérément ) à créer des noms d'objet dynamiquement dans mon programme. Exemple:

    tabPage1, tabPage2, ... , tabPagen
    ou
    monControl1, monControl2, ..., monControln

    Merci pour vos réponses

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2003
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2003
    Messages : 399
    Points : 259
    Points
    259
    Par défaut
    Voici un bout de code qui créer un champ image et l'ajout dans un tabpage

    La ligne avec le "AddHandler" sert à créer des actions sur ton champ
    Donc tu prévoir le code qui sera généré sur ton champ qui n'existe pas encore.
    là par exemple le code renvoie une message box qui dira bonjour après un double clic sur le champ image

    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
     
    Sub créerChampImageDansOnglet()
        Dim NouveauChampImage As PictureBox
        NouveauChampImage = New PictureBox
        NouveauChampImage.SizeMode = PictureBoxSizeMode.Zoom
        NouveauChampImage.ContextMenuStrip = ContextMenu_GestionImage
        NouveauChampImage.BorderStyle = BorderStyle.Fixed3D
        NouveauChampImage.Dock = DockStyle.Fill
        NouveauChampImage.BackColor = Color.Gainsboro
        NouveauChampImage.Name = "ChampImage"
     
     
        AddHandler NouveauChampImage.DoubleClick, AddressOf ClicImage_DoubleClick
     
        Me.Controls.Add(NouveauChampImage)
        ChpOnglet_OngletsImage.TabPages(0).Controls.Add(NouveauChampImage)
     
    End Sub
     
    Private Sub ClicImage_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs)
        msgbox("Bonjour")
    End Sub
    j'espère que ça t'aidera un peu

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Je crains que cela ne réponde pas à ma demande.
    D'après ce que je comprend, tu crée un tableau d'onglets (n onglets) avec la même image et le même nom.
    ce que je voudrais c'est avoir un tableau d'onglets identiques dans la forme mais avec des valeurs différentes.
    ex:
    onglet1 avec les renseignements de "Dupont"
    onglet2 -------------------------- "Durand"
    ongletn ---------------------------"xxxxxx"

    Merci pour la réponse

  4. #4
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    La piste que t'indique Ricil répond, à mon avis, à la demande que tu as formulée...

    En réflechissant un peu, tu peux arriver à faire ce que tu désires

    Code vb.net : 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
     
        Sub CreationNouvelOnglet(ByVal Str_TitreOnglet As String)
            Dim MonNouvelOnglet As TabPage
            Dim MesComposants() As Control
     
            ' Création d'un nouvelle onglet
            MonNouvelOnglet = New TabPage
     
            ' Nom de l'onglet (qui n'a aucune importance en soi !!)
            ' Cela pourrait etre le même nom à chaque fois
            MonNouvelOnglet.Name = "Onglet" & MonTabControl.TabPages.Count.ToString
     
            ' Titre de l'onglet
            MonNouvelOnglet.Text = Str_TitreOnglet
     
            ' Tableau de composants à ajouter à l'onglet
            ' C'est dans la procédure TableauDeComposantsAjouter
            ' que tu va déterminer les paramètres de tes composants
            ' et leur contenu
            MesComposants = TableauDeComposantsAjouter()
     
            ' Ajout de la liste des composants à l'onglet
            MonNouvelOnglet.Controls.AddRange(MesComposants)
     
            ' Et enfin, ajout de l'onglet au control TabControl
            MonTabControl.TabPages.Add(MonNouvelOnglet)
        End Sub

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2003
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2003
    Messages : 399
    Points : 259
    Points
    259
    Par défaut
    kelpan t'a bien aidé avec plein de commentaire je pense qu'en cherchant un peu tu devrais trouver ta solution

    Bon courage

    PS :
    kelpan je ne suis pas d'accord sur toi quand tu dis : "Cela pourrait etre le même nom à chaque fois"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          ' Nom de l'onglet (qui n'a aucune importance en soi !!)
             ' Cela pourrait etre le même nom à chaque fois
            MonNouvelOnglet.Name = "Onglet" &      MonTabControl.TabPages.Count.ToString
    Ce n'est pas bon de donner le même nom car tu auras de champ avec le même nom et si tu veux y accéder via son nom et non par l'index c'est mort.
    j'ai pas essayé mais je pense que le système doit te jeter.

    Par contre le titre de l'onglet (MonNouvelOnglet.Text) lui peut être le même

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci à tous pour vos réponses.

    Cela solutionne ce problème.
    J'étais arrivé, à force de tatonnements à une solution avoisinante.
    Mais ta solution, Kelpan est claire et bien commentée.
    Tu pourrais peut être la proposer en tuto car les exemples de Microsoft ne sont pas clairs.

    @+ pour une autre aventure.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/08/2013, 15h41
  2. Movieclip dynamique ou noms d'objet
    Par Iodev dans le forum Flash
    Réponses: 4
    Dernier message: 28/09/2006, 08h37
  3. [VB.NET] Création d'objet dynamique
    Par Torkan dans le forum Windows Forms
    Réponses: 9
    Dernier message: 29/05/2006, 03h18
  4. [VB.Net] Créer dynamiquement un nom de variable
    Par chuck_m dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/07/2005, 15h08
  5. [Reflexivite]création dynamique d'objet et Héritage
    Par norkius dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 26/10/2004, 11h37

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