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

VC++ .NET Discussion :

Sous-classer un composant (Panel, contrôle) et l'intégrer au designer !


Sujet :

VC++ .NET

Vue hybride

pierre.chatelier Sous-classer un composant... 20/09/2007, 08h55
nico-pyright(c) Normalement, si tu crées un... 20/09/2007, 09h07
pierre.chatelier Je n'arrive pas à le... 20/09/2007, 09h30
nico-pyright(c) si tu as créé un userControl,... 20/09/2007, 13h27
pierre.chatelier Merci ! 20/09/2007, 15h29
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Par défaut Sous-classer un composant (Panel, contrôle) et l'intégrer au designer !
    Bonjour,

    Je commence souvent mes messages par "Avec Cocoa sous MacOS X on fait comme ça...", mais c'est pour expliquer pourquoi j'ai du mal à retrouver certains concepts avec .NET qui a une approche différente.

    Voici :
    "Avec Cocoa sous MacOS X", si on crée une sous-classe d'un contrôle (NSView, NSButton, etc...) il est possible de faire lire le fichier .h à InterfaceBuilder (le designer d'interface) pour lui permettre d'intégrer ces nouveaux contrôles. À l'écran, dans le designer, ils ont alors l'aspect de leur superclasse (NSView ou NSButton), mais dans le code, ils sont sous-classés. Il est donc très facile de créer et utiliser de nouveaux contrôles et de redéfinir leur comportement.

    J'aimerais faire la même chose en .Net (windows forms) avec Visual Studio 2005.

    J'ai essayé la même approche : je crée (à la main) une sous classe de System::Windows::Forms:: Panel, que j'appelle disons MyPanel. Comme je n'ai pas trouvé de moyen d'informer le designer de l'existence de MyPanel.h, je crée un Panel normal dans l'interface, puis, dans le code automatiquement généré, je remplace gcnew System::Windows::Forms:: Panel par gcnew MyPanel; (bien sûr j'ai un #include qui traîne)
    Tout marche très bien.
    SAUF QUE
    Tout marche bien, comme prévu, à l'éxécution. Mais à partir du moment où j'ai modifié le gcnew, le designer n'est plus capable d'afficher la fenêtre contenant le panel. Il me crache des erreurs
    "Type MyPanel introuvable, assurez-vous que l'assembly qui contient ce type est référencé. Si ce type est un composant de votre projet de développement, assurez-vous que le projet a été créé comme il se doit"

    Alors ma question est : comment faire ?

    J'ai lu à droite à gauche que j'aurais tout intérêt à dériver UserControl pour ça (Ajouter > Nouvel élément > Contrôle Utilisateur...) sauf que j'ai le même problème : je n'arrive pas à informer le designer de son existence, et donc je ne sais pas déposer un tel nouveau contrôle dans l'interface sans modifier (et donc invalider) le code sous-jacent.

    +
    Chacha

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Normalement, si tu crées un UserControl, tu peux l'ajouter à la barre d'outil et le glisser déposer sur ta form.
    C'est cette action qui te fait une erreur sur le designer ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Par défaut
    Je n'arrive pas à le glisser/déposer !
    J'essaye d'attraper le .h, mais il ne se déposer pas dans la boîte à outils. Et je n'arrive rien à "attraper" dans le designer du UserControl...

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    si tu as créé un userControl, il faut glisser-déposer l'assembly, pas le .h

    regarde à partir d'ici dans ce tuto http://nico-pyright.developpez.com/t...ol/#Lattributs

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Par défaut
    Citation Envoyé par nico-pyright(c) Voir le message
    regarde à partir d'ici dans ce tuto http://nico-pyright.developpez.com/t...ol/#Lattributs
    Merci !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Par défaut
    En fait, ça ne va pas.
    Soit je n'ai pas compris, soit c'est incroyablement peu praticable.
    Ce que j'ai trouvé dans le tutorial, c'est qu'un nouveau composant est créé et compilé comme projet autonome. Or, je compte, moi, l'utiliser dans un certain projet, où je veux redéfinir son comportement de telle sorte qu'il utilise certains objets/classes/méthodes de ce même projet...
    Comment faire ?

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

Discussions similaires

  1. [Recherche de composant] Panels "minimisables"
    Par ben_popcorn dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/09/2008, 18h13
  2. Composant Panel valeurs mauvaises
    Par Hurin dans le forum C#
    Réponses: 3
    Dernier message: 22/05/2008, 17h30
  3. [Composant] Panel transparent paramétré
    Par Pedro dans le forum Composants VCL
    Réponses: 2
    Dernier message: 08/10/2005, 18h43
  4. POO : comment bien sous-classer ?
    Par Invité1 dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 05/04/2005, 12h20
  5. Réponses: 7
    Dernier message: 02/02/2005, 20h32

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