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 :

UserControl et polymorphisme


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut UserControl et polymorphisme
    Bonjour à tous,

    J'ai un problème concernant les usercontrol, et polymorphisme...

    Je vous présente la situation :

    J'ai une classe qui contient cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim l_usercontrol As UserControl
    J'ai créé un usercontrol perso (dont j'ai besoin pour générer dynamiquement plusieurs fois un tabitem contenant tjrs la même chose)

    J'instancie donc mon usercontrol (il s'agit bien de polymorphisme non ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l_usercontrol = New usercontrol_contenu_formation
    Dans mon usercontrol_contenu_formation il y a par exemple un combobox que j'aimerai remplir.
    Sauf que je ne sais absolument pas comment faire, car si je crée une méthode dans ce usercontrol_contenu... je n'ai pas accès à la méthode, logique...
    Donc où placer cette méthode, que faut-il que j'hérite, ou je ne sais quoi pour pouvoir utiliser tous les control que contient mon usercontrol ? je suis un peu perdu..


    J'avais pensé à créer un usercontrol générique que mes usercontrol perso hériteraient afin de définir des méthodes... mais ça marche pas ou je m'y prends mal,

    Bref comment résoudre mon problème ?


    Merci

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Si tu déclare ton user control comme ca :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim l_usercontrol As UserControl
    l_usercontrol = New usercontrol_contenu_formation
    Normal que dans le code tu n'accède a rien, car tant qu'il n'est pas instancier (a l'execution), VS ne sera te dire ce qu'il y a dedans.

    Pourquoi ne pas avoir fais ca : ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim l_usercontrol As usercontrol_contenu_formation
    l_usercontrol = New usercontrol_contenu_formation
    La tu pourras faire:


  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Par défaut
    Una manière de voir une utilité au polymorphisme (le polymorphisme héritage) est, que si tu as une classe qui hérite d'une classe de base, pour laquelle tu as définis une méthode, si tu déclare ensuite une instance plus spécialisé, tu peux utiliser cette méthode dans ton code, sachant que c'est la méthode de la classe dérivé, si tu l'as redéfinie, qui sera appelé.

    Ainsi si tu as un pièce de jeu d'échec tu peux faire
    sachant que suivant que tu définie,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Piece piece = new Fou()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Piece piece = new Pion()
    c'est la bonne méthode, définie dans la classe dérivée, (mouvement de pion ou mouvement de fou) qui sera appelée.(Sous réserve d'utiliser virtual et override) Cela t'évite d'avoir à te préoccuper des cas.
    J'espère que cela t'aide.
    http://msdn.microsoft.com/fr-fr/libr...=vs.80%29.aspx

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    Ah oui ok, merci davjan et mactwist

    Je maitrise pas bien ces notions manque d'expérience :/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim l_usercontrol As usercontrol_contenu_formation
    l_usercontrol = New usercontrol_contenu_formation
    je ne faisais pas ça car je pensais pouvoir utiliser le polymorphisme surtout que j'en ai 7 des usercontrol perso... donc je me suis dit que ça ferait peut-être un peu lourd

    Mais finalement j'utilise cette méthode qui est la plus simple ^^



    J'ai une autre question qui me bloque du coup encore...

    Donc j'ai un tabcontrol.
    J'ai une classe qui génère des tabitems dynamiquement avec comme contenu un usercontrol (que je crée moi même et on va dire qu'il contient un texbox) que je passe en paramètre, par exemple :

    tabitem.content = p_usercontrol_perso.content


    Comment faire pour récupérer les valeurs (genre textbox.text) des objects qui sont dans mon usercontrol qui est appellé x fois pour x tabitem ?



    Je bloque un peu car tout est généré automatiquement, j'avais pensé à appeler une classe juste après la génération du tabitem, de façon a ce qu'elle récupère l'objet en cours et l'envoi dans un dictionnaire. C'est possible ? (j'y suis pas arrivé, ça me semblait pas mal mais lorsque j'appelle le constructeur avec en paramètre l'objet a stocké, il me met une erreur comme quoi l'objet n'est pas instancié )

    Car il me faut bien chaque référence aux controls contenu dans chacun de mes usercontrol (vu que je génère par exemple 10 fois un tabitem contenant le même usercontrol) pour pouvoir récupérer toutes les valeurs...


    Si vous avez compris ce que je voulais dire, super , si vous avez une piste à me donner, un bout de code très approximatif,etc super de chez super


    Merci !

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    C'est bon j'ai enfin réussi après avoir trouvé une erreur toute bête

    Merci.

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

Discussions similaires

  1. Surcharge et Polymorphisme
    Par Hell dans le forum C++
    Réponses: 6
    Dernier message: 12/01/2005, 20h50
  2. XMLRAD equivalent usercontrol ASp .NET
    Par le-roy_a dans le forum XMLRAD
    Réponses: 10
    Dernier message: 10/12/2004, 14h09
  3. Réponses: 2
    Dernier message: 25/07/2004, 23h24
  4. Réponses: 12
    Dernier message: 18/03/2004, 15h09
  5. [VB6] [UserControl] Évènements personnalisés
    Par Frankywinky dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/05/2003, 17h56

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