2010-08-31 6 views
1

Celui-ci m'a vraiment perplexe. J'ai certaines formes qui sont instanciées. Quand j'instancie un formulaire je le rend un enfant de la forme mdi parMDIWindowListITem ne fonctionne pas

form1.MdiParent = this;

J'ai mis la propriété MDIWindowListITem de mon MenuStrip à un ToolStripMenuItem

Cependant, cette ToolStripMenuItem ne montre pas la forme de l'enfant quand il est mdi instancié

Est-ce que quelqu'un a des idées sur ce sujet?

Toutes les entrées/pistes/conseils seraient les bienvenus. J'utilise NET Framework 3.5

Cordialement

,

Répondre

1

Vous devez écrire votre code afin qu'il soit ajouté manuellement je crois.

Voir l'exemple ici pour pointeurs:

MSDN help on ToolStripPanel

Modifier

Vous avez raison ignorer mon entrée précédente est ici le code pour une application MDI très simple qui apparaît faire ce que votre après.

Il s'agit simplement de deux formulaires vierges. Form1 a IsMDIContainer=true. Il a également menuStrip1, qui contient deux éléments "nouveau" (newToolStripMenuItem) et "windows" (windowsToolStripMenuItem). Cliquez sur new pour ouvrir une nouvelle fenêtre enfant. J'ai mis le MDIWindowListItem de menuStrip1 à windowsMenuStripItem. Quand une nouvelle fenêtre enfant est ouverte, cliquer sur windowsMenuStripItem produit un menu déroulant qui affiche toutes les fenêtres ouvertes.

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     private int count; 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void newToolStripMenuItem_Click(object sender, EventArgs e) 
     { 
      count++; 
      //Set a window title text as this is what is shown in the window list. 
      Form2 newForm = new Form2() { Text = string.Format("Window {0}", count) }; 
      newForm.MdiParent = this; 
      newForm.Show();//<--- this needed to show window in list. 
     } 
    } 
} 

Il n'y a pas de code dans Form2.

Les fenêtres enfants affichent uniquement sous windowMenuStripItem une fois que Form.Show() a été appelé. Sans cela, ils n'apparaissent pas dans la liste.

+0

Salut Merci! Mais je ne pense pas que cela soit nécessaire. Il suffit de définir la propriété MDIWindowListitem du contrôle menustrip. Le concepteur devrait s'occuper du reste. mais de toute façon merci pour vos entrées. Je vais passer par le lien MSDN que vous m'avez envoyé – bornagaindeveloper

+0

@bornagaindeveloper - J'ai sorti du code. Vous devez vous assurer que vos fenêtres enfants MDI ont leur valeur de texte définie comme c'est ce qui est affiché dans la liste déroulante. En outre, ils n'apparaissent pas tant que leur méthode Show() n'a pas été appelée. – ChrisBD