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 :

Docker un Form dans un Control.


Sujet :

Windows Forms

  1. #1
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut Docker un Form dans un Control.
    Bonjour !
    Voilà, je sais que dis comme ca, ca fait un peu étrange, mais j'ai une bonne raison ^^'.

    Je développe un control :
    donc il hérite de Control. Pour être plus précis, il hérite de DevExpress.XtraEditors.XtraUserControl, c'est un contrôle personnalisé de DevExpress. Je n'ai pas de réèl impératif sur la classe de base à utiliser, ca doit juste se comporter exactement comme un contrôle, c'est à dire qu'il doit être disponible dans le Designer de Visual Studio et être posable sur un formulaire/panel/autre control...

    Je préfèrerai que ca hérite d'un truc DevExpress quand même car globalement toutes les applis qui vont utiliser ce controle sont faite avec DevExpress et ca permet de conserver les skins (mon boss aime quand c'est beau...)

    Mon contrôle doit implémenter des "pages", accessibles par des onglets. Chaque page est identique, elle correspondent à un document.

    Mais, problème :
    On a une application dont la fenêtre principale est une fenêtre MDI. Et mon patron aimerai que mes documents, dans cette application, ne soient pas des onglets au seins de mon controle, mais des fenetres MDI enfant au sein de la fenêtre principale.

    Du coup, mes documents doivent être des Form ou équivalent. Mais dans le cas où mes fenêtres doivent être dockée au sein de mon contrôle (préférences d'affichages, pas de fenêtre mdi parente disponible, ...), je fais comment pour docker ces fenêtres au sein de mon controle ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Points : 120
    Points
    120
    Par défaut
    Tu peux développer des user control contenant l'ensemble de ta "fenêtre" que tu dockeras en fonction des tes besoins soit dans une page onglet soit dans la winform

  3. #3
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    J'y avais déjà un peu songer, mais j'espérais une solution plus "générique". J'entend par générique le fait que j'aurais pas eu trop à m'en préoccuper a l'intérieur de mon control.

    Pour faire simple, avec DevExpress il y a un component qui permet d'organiser les fenêtres MDI enfants sous forme d'onglet. Ca donne vraiment l'impression d'un TabControl classique sauf que les zones clientes des pages sont les zones clientes des forms.

    J'aurais aimer que mon controle fournisse une propriété "MdiManager" donnant accès en lecture/écriture à une instance du composant DevExpress. Ainsi, quand tu poses mon contrôle dans un formulaire, tu renseigne la propriété MdiManager et hop, toutes les fenêtres de documents sont affichées comme onglet MDI du formulaire propriétaire du MdiManager.

    Ca, j'y arrive, mais le problème c'est quand tu ne définis pas cette propriété, c'est la zone cliente de mon contrôle qui devrait être utilisée pour afficher la barre d'onglet et les documents.

    Et, evidemment, pour que ca soit plus drôle encore, il faudrait pouvoir, a tout moment dans le code, changer d'instance du MdiManager, et par conséquent transferer tous les documents dans ce nouveau conteneur.

    En utilisant la méthode que tu propose ca m'oblige à créer autant de page que de formulaire (ou vice-versa), enlever le document de la page/Formulaire, le placer sur le nouveau destinataire, puis supprimer tous les formulaires (ou pages) anciennement utilisé. Niveau perf c'est pas la joie.

    En écrivant ces lignes je songe à une éventuelle solution, je teste et je vous dis.

  4. #4
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Bon, j'ai fait tout plein de tests dont l'implémentation de l'interface IContainer ou encore d'ajouter un panel bidon dans mon control destiné a contenir un Form bidon également, mais ce form serait un Form MDI. J'ai également tenté ma chance avec le MdiClient. Mais j'arrive a rien.
    Je continue de chercher du coter du MdiClient, je crois que ya quelque chose à faire à ce niveau.

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/10/2010, 21h50
  2. [Listview]Ajout Name des controles d'une form dans une listview
    Par Roken62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/01/2009, 13h17
  3. probleme d'utilisation d api c dans des controle forms avec wpf
    Par ZashOne dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 24/07/2007, 12h04
  4. Form dans un Tabsheet
    Par semaj_james dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/05/2004, 18h41
  5. Stocker du texte mis en forme dans un document XML
    Par ovh dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 13/02/2003, 10h23

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