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 :

Problèmes avec un mdiWindowListItem et des toolStrip merged


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut Problèmes avec un mdiWindowListItem et des toolStrip merged
    J'ai une fenêtre MDI. Elle a un toolStrip et menuStrip dont un item à la propriété MdiWindowListItem définie. J'ai plusieurs fenêtres

    enfants qui ont chacune leur toolStrip qui est fusionnée avec le toolStrip de la fenêtre principale si elles sont maximisées.
    Voilà, le décor est posé.

    Le problème maintenant :

    Si une fenêtre qui est maximisée et que je passe à une autre par l'intermédiaire du mdiWindowListItem les boutons du toolStrip (fusionné) de la fenêtre enfant disparaissent.


    Mes toolStrip sont fusionnées de la manière suivante :

    l'événement SizeChanged des fenêtres enfant appellent la méthode suivante (commune à toutes les fenêtres enfant)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    protected void mergeToolStrips(ToolStrip toolStrip)
    {
    	if (WindowState == FormWindowState.Maximized)
    	{
    		ToolStripManager.Merge(toolStrip, "mainToolStrip");
    		toolStrip.Visible = false;
    	}
    	else
    	{
    		ToolStripManager.RevertMerge("mainToolStrip");
    		toolStrip.Visible = true;
    	}
    }

    J'ai tenté de debugger le problème et voici ce que j'ai constaté : lorsque je passe d'une fenêtre à l'autre, la fenêtre non visible ex maximisée (et donc son toolStrip fusionné). A ce moment là la fenêtre qui était affichée est minimisée et les toolStrip séparée (et celle de la fenêtre que je viens de maximiser avec).


    Ma question, est-ce qu'il y a une solution à ce problème ? Est-il possible d'indiquer aux fenêtres de gérer elles-même la fusion des toolStrips ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    Salut

    De mémoire (attention aux trous de mémoire à mon age ) , je crois que tu
    as un event MdiActivated qui te permet de savoir qu'elle Mdi est activé

    En te basant sur ce paramètre, tu pourrais gérer ta fusion en déterminant
    la fenetre Fille active avec laquelle fusionner ... non ?

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut
    Il y a un évènement mdiChildActivate. Je vais voir si je peux faire quelque chose avec ça.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 423
    Points : 188
    Points
    188
    Par défaut
    Je pense avoir une solution mais je ne parviens pas à l'appliquer.
    Mon idée : lorsque MdiChildActivate est appelé, séparer les toolStrip de toutes les fenêtres puis fusionner le toolStrip de la fenêtre active (si elle est maximisée).

    Mes fenêtres enfants sont toutes de type différent mais héritent toute de TOViewMainForm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private void TOMainForm_MdiChildActivate(object sender, EventArgs e)
    {
    	foreach (TOViewMainForm child in MdiChildren)
    	{
    		//récupération du type
    		Type t = child.GetType();
     
    		//tentative de cast, c'est là que je ne sais pas 
    		//du tout comment je dois procéder.
    		(t)child.mergeToolStrips(child.toolStrip, false);
    	}
    }
    Voilà, le problème se situe au niveau du cast, est-ce que quelqu'un peut m'aider ?

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/01/2007, 11h43
  2. Problème avec un switch contenant des strings
    Par dessinateurttuyen dans le forum Langage
    Réponses: 6
    Dernier message: 18/07/2006, 12h56
  3. Réponses: 1
    Dernier message: 22/12/2005, 09h39
  4. [VB Excel] Problème avec le nom automatique des TCD
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/12/2005, 13h30
  5. Problème avec une TImageList contenant des grandes images
    Par Manopower dans le forum Composants VCL
    Réponses: 8
    Dernier message: 17/11/2005, 15h20

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