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 :

Contrôles utilisateurs avec des propriétés communes


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Contrôles utilisateurs avec des propriétés communes
    Bonjour,

    (ce message a été posté dans un autre groupe mais apparemment pas dans le bon, c'est pourquoi je le reposte ici même)

    j'ai créé pour mon application 3 contrôles qui ont en commun quelques propriétés.
    Chacun de ces contrôles est chargé dynamiquement dans une collection elle même dans une classe dédiée à un type de contrôle.
    Ces classes dédiées héritent elles-mêmes d'une classe mère.


    ClassMonPanel --------- ClassMonPanelA---------- ComposantA (propriété1, propriété2, propriété3, .... propriétéXXX)
    |
    |----------------------- ClassMonPanelB---------- ComposantB (propriété1, propriété2, propriété3, .... propriétéYYY)
    |
    |----------------------- ClassMonPanelC---------- ComposantC (propriété1, propriété2, propriété3, .... propriétéZZZ)


    Voila ma question :
    Est il possible depuis la classe mère d'accéder aux propriétés communes (1, 2 et 3) des composants A, B et C ? (la classe mère ne connait pas spécifiquement les types des composants que ses filles chargent)
    Ou dois je forcément créer un composant père pour mes composants A, B et C, père qui contiendra les propriétés 1, 2 et 3 ?
    Vu l'avancement du dev, j'avoue que je préfèrerais trouver une solution pour la première proposition.
    Merci pour toute info me permettant de me tirer d'affaire.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Re ...

    après quelques recherches, il semble qu'il soit impossible de faire un usercontrol qui hérite d'un autre usercontrol ??

    Est-ce vrai ?

    Et re mercie pour toute info.

  3. #3
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    pour ta première question, la méthode la plus simple (peut-être pas la plus propre conceptuellement parlant) serait de sortir des 3 attributs communs de tes composants et les mettre directement dans ta classe ClassMonPanel.

    Pour ta dernière interrogation je ne crois pas qu'il y ait de contrainte à ce niveau là.
    Perso j'ai fait ce petit code qui compile sans souci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public class MasterButton : UserControl {}
    public class SonButton : MasterButton {}
    T'as quoi comme erreur ?
    Plus je connais de langages, plus j'aime le C.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Bonjour et merci pour ta réponse.

    Voici un bout de code :

    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
    'la classe mère
    Public MustInherit Class uctlGenerique
     
        Private _pText As String
     
        Public Property maProp() As String
            Get
                maProp = _pText
            End Get
            Set(ByVal value As String)
                _pText = value
            End Set
        End Property
     
    End Class
     
    'le contrôle fils
    Public Class uctlIntrant
        Inherits uctlGenerique
     
    ....
    ....
     
    End Class
    J'obtiens une erreur dans l'éditeur :

    "La classe de base 'uctlGenerique' spécifiée pour la classe 'uctlIntrant' ne peut pas être différente de la classe de base 'System.Windows.Forms.UserControl' de l'un de ses autres types partiels."
    Merci encore pour toute info.

  5. #5
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Bonjour SergeFo,

    "La classe de base 'uctlGenerique' spécifiée pour la classe 'uctlIntrant' ne peut pas être différente de la classe de base 'System.Windows.Forms.UserControl' de l'un de ses autres types partiels."
    As-tu fais hériter ta classe 'uctlGenerique' de 'UserControl'?

    Si j'ai bien compris ton problème, tu dois avoir 'uctlGenerique' qui hérite de UserControl et 'uctlIntrant' qui hérite de 'uctlGenerique' (et donc, indirectement, de UserControl).

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Oui c'est bien cela.

    j'ai rajouté a la classe mère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public MustInherit Class uctlGenerique
        Inherits System.Windows.Forms.UserControl
    
        Private _pText As String
    
        Public Property maProp() As String
            Get
                maProp = _pText
            End Get
            Set(ByVal value As String)
                _pText = value
            End Set
        End Property
    End Class
    Mais cela ne change rien. J'ai toujours la même erreur (sur : Public Class uctlIntrant Inherits uctlGenerique )


    PS : je voudrais préciser aussi (je ne sais pas si cela a un impact) que le composant uctlIntrant existe déjà et que je tente "d'insérer" la classe mère en créant un nouveau usercontrol (uctlGenerique)

  7. #7
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Ta classe fille n'aurait-elle pas une définition partielle ?
    Si oui vérifie son héritage dans son designer.cs.
    Plus je connais de langages, plus j'aime le C.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Oui effectivement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Partial Class uctlIntrant
        Inherits System.Windows.Forms.UserControl
    ....

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Bien vu jopopmk

    je viens de corriger le fichier "designer" et ca colle !!!

    MERCI encore.

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

Discussions similaires

  1. Contrôles utilisateurs avec des propriétés communes
    Par SergeFo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/11/2015, 12h17
  2. Réponses: 2
    Dernier message: 22/03/2007, 12h01
  3. Interface Utilisateur avec des droits
    Par Karibbean971 dans le forum Delphi
    Réponses: 5
    Dernier message: 18/09/2006, 17h30
  4. erreur LNK2019 avec des fonctions communes.
    Par FamiDoo dans le forum Visual C++
    Réponses: 9
    Dernier message: 31/07/2006, 11h32
  5. Réponses: 2
    Dernier message: 20/04/2006, 15h05

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