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 :

Debutant WinForm plusieurs ecrans


Sujet :

Windows Forms

  1. #1
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut Debutant WinForm plusieurs ecrans
    Bonjour,

    Je souhaite écrire un petit programme contenant deux écrans.
    (une page saisie de donnée, et une page récapitulatif par exemple).

    Pour cela j'ai créé deux winforms.
    FormDonnee et FormRecap

    Je pense que je suis deja parti sur une fausse piste en faisant cela car :
    - Bien que j'ai le meme menu sur chaque page j'ai du refaire le meme code dans chaque page (Methode exitToolStripMenuItem_Click *2 etc...)
    - Quand je passe d'une page a l'autre je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    this.Hide();
                FormDonnee maform = new FormDonnee ();
                maformShow();
    du coup la position de la fenêtre n'est pas garde plus divers autres problèmes.


    Je suppose que normalement j'aurais du faire une form dans laquelle je charge mes deux autres form? non? Mais comment faire?

    (si vous avez un tutorial ? Car ceux que j'ai trouve parle de comment faire une page mais pas comment en faire plusieurs).

    D'avance merci.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    Est que mon probleme consiste a faire du mdi?

  3. #3
    Membre habitué Avatar de salihovic
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 135
    Points
    135
    Par défaut
    tu peus faire un MDI mais tu peut aussi faire une autre 3 èmme forme qui appelle les 2 formes...
    pour bien basculer entre les formes il faut avoir toujour une référence a une forme appelante pour qu'on l'utilise pour afficher ou restaurer...
    le MDI c'est bon
    mais peut être tu n'as pas besoin.
    pour les menus il y a les propriétés de merge et tt
    et même tu peut construire un objet comme menu et puis passer au 2 formes et ajouter les évennements...
    peut etre c'est un peu compliqué mais c'est possible.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    tu peut aussi faire une autre 3 èmme forme qui appelle les 2 formes...
    D'accord merci mais comment fait on ca?

    A ton un contentplace ou quelle chose comme ca?


    Et quelles sont les bonnes pratiques pour faire ce genre de projet?

  5. #5
    Membre habitué Avatar de salihovic
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 135
    Points
    135
    Par défaut
    il y a 2 solutions
    oubien tu choisit de créer une 3 èmme forme ordinaire donc tu gère toi même les evénnements oubien tu crée une MDI dans le cas c'est plus simple.
    pour les menus il sufit de choisir un menustrip et tu la remplit par tes menus
    et tu crée les évennements
    puis au chargement tu affecte pour chaque classe les menus
    tu peut en servir des tags des objets pour distinguer...par exemple tu peut faire dans le tag de la form le nom de la form...
    sinon c'est pas trops compliqué

  6. #6
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    Avec l'utilisation d'un mdi ce qui m'embête c'est que j'ai une barre en haut de la form permettant de fermer la form. J'aurais aime que celle ci soit complemtent integre dans le mdi (pas de barre bleu, de bouton X...)

    Sinon pour le menustrip j'ai pas de soucis a le faire mais quand il est integre dans une form on doit a chaque fois relier tous les evenements (meme si ceux sont integre dans une classe) donc risque d'oublie..


    Pour la 3ieme form je n'ai pas trouve comment on integre un form dans un autre form.
    J'ai trouve ce bout de code que je dois encore tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    FormQueJeVeuxInclure MyForm = new FormQueJeVeuxInclure();
    MyForm.TopLevel = false;
    MyForm.FormBorderStyle = FormBorderStyle.None;
    MyForm.Parent = MyPanel;
    MyForm.Top = 0;
    MyForm.Left = 0;
    MyForm.Size = MyPanel.ClientSize;
    MyForm.Dock = DockStyle.Fill;
    MyForm.BringToFront();
    MyForm.Show();
    http://www.developpez.net/forums/d25...ir-form-panel/

  7. #7
    Membre habitué Avatar de salihovic
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 135
    Points
    135
    Par défaut
    mais si tu veux tu peus utiliser les panels au lieu des forms...
    donc une seule forme et deux panaux...
    c'est une idée mais ça dépond de ton besoin.
    car intégrer une forme dans une autre n'est pas vraiment util
    mais par défaut une form contient un panel...
    donc c'est bien si on peut en faire un pour chaque besoin...

  8. #8
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Evite MDi, c'est vraiment obsolete.

    A la place j'utilise des TabControls siuuté dans une forme principale:
    On crée dans chaque forme secondaire un panel général (Dock=fill, Modifiers=internal) qui contient tous les controls de la forme secondaire.
    A l'init de la forme principale, on change la propriété Parent des panels généraux des formes secondaires en lui affectant le TabPage souhaité.

    Et pour faire plus zouli, Regarde dans cette discussion la solution proposée.
    (Bien qu'il s'agisse d'un forum Delphi, il expose une solution développée C#).
    Graffito :Je vous propose la solution qu'on a adopté en C# (moins de 3 jours de devpt pour une unité dédiée à la gestion des "formes détachables" ) , mais qui peut parfaitement se transposer en Delphi:

    On définit une forme principale composée d'un tabControl.
    On crée autant de formes applicatives avec un panel contenant tous les composants.
    On attache chaque panel "applicatif" aux tabpages du tabcontrol de la forme principale et on rend leur forme d'origine invisible.
    On prévoit la possibilité de détacher ces panels vers leur forme initiale en faisant un genre de "glisser-déplacer" sur la barre d'onglet (cela fait apparaitre la barre du haut de la forme d'origine au dessus des onglets du tabsheet et cette barre récupère le curseur ce qui permet de déplacer la forme dans le même mouvement).
    Aprés détachement, on peut aussi réintégrer les formes applicatives dans son onglet en "fermant" la forme applicative ou en faisant le glisser-dépacer inverse
    On combine ainsi le bon ordonnacement apporté par les onglets et la possibilité de voir simultanément 2 (ou n) formes "applicatives" de l'appli
    .

    http://www.developpez.net/forums/d31...i/lavenir-mdi/

    J'ai mis une demo et du source C# au message 34 de cette discussion.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  9. #9
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    Merci beaucoup.
    Le tabControls a l'air simple d'utilisation.

    J4essaye de coder tout ca et eventuellement je poste mon code pour savoir si j'ai fait ca dans les regles de l'art

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

Discussions similaires

  1. [debutant] enchainer plusieurs blocs <html><body>
    Par debdev dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/07/2005, 11h47
  2. [debutant][log4j] plusieurs appender
    Par Invité dans le forum Logging
    Réponses: 1
    Dernier message: 13/07/2005, 10h36
  3. [DEBUTANT]Lancer plusieurs processus
    Par demontools dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 10/04/2005, 13h48
  4. [debutant]Modelistation > plusieurs fk d'une meme table
    Par christophebmx dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 15/11/2004, 15h44
  5. [debutant] [main] plusieurs arguments
    Par naive dude dans le forum Langage
    Réponses: 9
    Dernier message: 28/09/2004, 09h20

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