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 :

Collection dans un UserControl


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Par défaut Collection dans un UserControl
    Bonjour,

    J'ai créé un contrôle utilisateur (groupement de Windows Foms standard)
    Je crée un deuxième contrôle utilisateur qui en plus de son petit côté graphique doit posséder comme propriété une collection (Items) de mon premier contrôle utilisateur.

    Maintenant lorsque j'insère mon deuxième contrôle utilisateur dans un projet :
    - j'aurai aimé avoir la valeur affichée "(Collection)" comme pour une ComboBox dans ma propriétés Items.
    - Lorsque j'ajoute des Items via le designer, ceux-ci ne sont pas conservés dans la liste affichée.


    Voici pour exemple :

    Mon premier contrôle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Imports System.ComponentModel
     
    <Serializable()>
    Public Class ucPremier
     
        Public Sub New()
            ' Cet appel est requis par le concepteur.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
        End Sub
     
    End Class

    Mon deuxième contrôle

    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
    Imports System.ComponentModel
     
    Public Class ucDeuxieme
     
        Private _items As List(Of ucPremier)
     
        Public Sub New()
            ' Cet appel est requis par le concepteur.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
        End Sub
     
        <Category("Apparence"), Browsable(True), Description("Groupe de premier contrôle"), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)>
        Public Property Items As List(Of ucPremier)
            Get
                Return _items
            End Get
            Set(ByVal value As List(Of ucPremier))
                Me._items = value
            End Set
        End Property
     
    End Class
    Si quelqu'un peut me dépanner là-dessus.
    D'avance merci ^^

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    On peut avoir plus de code car je ne vois pas en quoi ça pose problème ...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Par défaut
    En code, il n'y a rien de plus. Après c'est du code perso sur la gestion du contrôle.

    Par contre pour mieux comprendre, j'ai fait des captures d'écran.

    Le libellé manquant alors que je souhaiterai voir apparaitre (Collection)



    L'ajout d'objet à la collection. Les objets ne sont pas conservés dans la liste et ils ne sont pas dessinés dans mon contrôle.

    Ajout de 3 éléments.


    Je clique sur OK. Je rouvre : la liste est vide. J'ajoute à nouveau 2 éléments et le compteur continue son incrémentation.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    je verrais bien
    Private _items As New List(Of ucPremier)
    (ou éventuellement une initialisation dans le get si is nothing)
    mais ca n'est peut être pas obligatoire

    sinon tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <System.ComponentModel.DesignerSerializationVisibility( System.ComponentModel.DesignerSerializationVisibility.Content )> _
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Par défaut
    Bien vu, essayé et approuvé.
    Il fallait bien le New.

    Ça corrige les 2 soucis.

    Merci Pol63

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

Discussions similaires

  1. Utilisation des collections dans les UserControl
    Par flo67 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/01/2008, 20h34
  2. Récuperer une collection dans un select
    Par enimiste dans le forum Struts 1
    Réponses: 3
    Dernier message: 30/05/2006, 21h43
  3. [VB.Net] Comment utiliser CSS dans un UserControl ?
    Par GEFIRO1 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/04/2006, 09h27
  4. Comment afficher un Set(COLLECTION) DANS UNE jTABLE
    Par taf dans le forum Composants
    Réponses: 3
    Dernier message: 05/04/2006, 11h53
  5. Réponses: 6
    Dernier message: 24/03/2006, 09h22

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