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

C# Discussion :

[Débutant] Toolstrip et forms MDI


Sujet :

C#

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [Débutant] Toolstrip et forms MDI
    Bonjour,
    Je possède deux forms.
    Un qui est le MainForm avec IsMDIContainer = true et qui appelle 'Form2' par un ToolstripLabel1

    Sur click :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    form2 = new Form2();
    form2.MdiParent = this;
    form2.WindowState = FormWindowState.Maximized;
    form2.Show();

    Comment se fait-il que mon toolstrip de ma fenêtre principale se retrouve dans la MDI ouverte en maximized et pas entre ma fenêtre principale et la MDI ?
    Comment faire SVP ?
    Merci de votre aide je suis complètement bloqué
    François
    Images attachées Images attachées    

  2. #2
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Vous pouvez regarder du coté des ToolStripPanel :

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Audiothor Voir le message
    Comment se fait-il que mon toolstrip de ma fenêtre principale se retrouve dans la MDI ouverte en maximized et pas entre ma fenêtre principale et la MDI ?
    Parce que c'est conçu comme ça... les menus et barres d'outils de la fenêtre MDI sont fusionnés avec ceux de la fenêtre parente.

    Tu peux peut-être essayer de jouer avec un ToolStripPanel comme indiqué par dkmix, mais je sais pas si tu pourras arriver au résultat voulu

  4. #4
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci de vos réponses. Je vais essayer avec les ToolStripPanel...

    Par contre tomlev, tu me dis que ce n'est pas prévu pour... cela signifie que pour des click sur des ToolStrip, il est conseillé d'utiliser quoi sachant qu'à chaque bouton de ToolStrip correspond un ou plusieurs forms ?
    Je pense naïvement que je n'utilise pas la bonne technique... car des appels à des forms par des ToolStrip est fortement utilisé !

    Si vous avez un lien ou quelques conseils, je vous remercie tous par avance.
    Désolé de mes questions de débutant...

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Audiothor Voir le message
    Par contre tomlev, tu me dis que ce n'est pas prévu pour... cela signifie que pour des click sur des ToolStrip, il est conseillé d'utiliser quoi sachant qu'à chaque bouton de ToolStrip correspond un ou plusieurs forms ?
    Je comprends pas ta question...

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Pardon de ne pas être clair...

    En fait je me demande si l'utilisation de form parent/MDI appelés par un ToolStrip est finalement une bonne idée quand on veut ouvrir des forms tel un menu ouvrant différents forms...
    Je voudrais qu'en cliquant sur "Accueil" j'ai un formulaire (là où il y a la croix) mais toujours avec mon ToolStrip d'affiché.
    Pareil quand je clique sur "carnet d'adresses", j'ai aussi un autre formulaire en maximized qui s'ouvre toujours avec mon ToolStrip (là où il y a la croix)


    Merci de ta patience.
    Images attachées Images attachées  

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Audiothor Voir le message
    En fait je me demande si l'utilisation de form parent/MDI appelés par un ToolStrip est finalement une bonne idée quand on veut ouvrir des forms tel un menu ouvrant différents forms...
    Ben ça dépend de ce que tu veux faire... les formulaires MDI que tu veux ouvrir seront toujours maximisés ? Si oui, tu ferais peut-être aussi bien d'utiliser un TabControl ou quelque chose dans ce style.

    Aujourd'hui les interfaces type MDI ne sont plus trop à la mode, la tendance est plutôt au TDI (Tabbed Document Interface), c'est à dire avec des onglets.

    Sinon, j'ai cherché un peu comment empêcher le comportement que tu as observé (la form enfant qui englobe les menus et toolbar de la form parent). Le ToolStripPanel ne change rien. Par contre, une astuce que tu peux utiliser : quand la form enfant est maximisée, tu remets son état à Normal, et tu mets sa propriété Dock à la valeur Fill. Comme ça elle prend tout l'espace disponible dans la zone cliente MDI, mais n'occupe pas toute la fenêtre.

    Exemple :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
        public partial class TestMDI : Form
        {
     
            public TestMDI()
            {
                InitializeComponent();
            }
     
            private int _childNum;
            private void newToolStripButton_Click(object sender, EventArgs e)
            {
                Form child = new Form();
                child.Text = "Child " + (++_childNum);
                child.MdiParent = this;
                child.SizeChanged += child_SizeChanged;
                child.FormClosed += child_FormClosed;
                child.Show();
            }
     
            void child_FormClosed(object sender, FormClosedEventArgs e)
            {
                Form child = (Form) sender;
                child.FormClosed -= child_FormClosed;
                child.SizeChanged -= child_SizeChanged;
            }
     
            void child_SizeChanged(object sender, EventArgs e)
            {
                Form child = (Form)sender;
                if (child.WindowState == FormWindowState.Maximized)
                {
                    // On remet toujours l'état à Normal
                    child.WindowState = FormWindowState.Normal;
     
                    // On "pseudo-maximise" la form si elle ne l'est pas déjà
                    if (child.Dock != DockStyle.Fill)
                    {
                        child.Dock = DockStyle.Fill;
                    }
                    else // sinon on la remet dans son état normal
                    {
                        child.Dock = DockStyle.None;
                    }
                }
            }
        }

  8. #8
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Le ToolStripPanel ne change rien
    Autant pour moi, pas de vs sous la main pour tester.

    Personnellement j'utilise cette astuce pour mes petits/moyens projets :
    Alternative aux MDI
    Attention, ce n'est pas adapté aux gros projets (toutes les forms enfants sont chargés en mémoire)

  9. #9
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Génial !
    Merci à vous deux pour vos réponses. C'est clair à présent !

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Autre alternative aux MDI :

    DockPanelSuite

    Interface dockée (genre Visual Studio) très sympa

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 28/02/2007, 12h18
  2. [c#]probleme avec les menu toolStripItem dans une form mdi??
    Par must19 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/11/2006, 23h02
  3. [VB.NET] forms MDI et topmost
    Par smedini dans le forum Windows Forms
    Réponses: 5
    Dernier message: 02/02/2006, 18h13
  4. Comment faire une Form MDI dynamiquement modale ?
    Par eponette dans le forum Composants VCL
    Réponses: 5
    Dernier message: 30/09/2005, 10h14
  5. comment faire communiquer deux form MDI?
    Par eponette dans le forum Langage
    Réponses: 3
    Dernier message: 17/08/2005, 12h20

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