2009-02-09 7 views
0

Est-ce une bonne idée de placer des contrôles sur l'arrière-plan d'une fenêtre parent MID? J'ai ajouté un conteneur fractionné à la fenêtre MDI qui s'affiche comme prévu mais lorsque j'essaie d'ouvrir d'autres formulaires dans la même fenêtre, ils affichent BEHIND le SplitContainer. La seule façon de les faire apparaître est si j'utilise ShowDialog pour les afficher. Malheureusement, j'ai besoin d'avoir plusieurs fenêtres ouvertes en même temps, donc ce n'est pas une solution pratique.Contrôles sur un arrière-plan MDI

Est-ce que je me suis approché de la mauvaise façon?

Répondre

2

Vous ne pouvez pas ajouter de contrôles couvrant la fenêtre du client MDI (arrière-plan gris foncé). Les clients MDI sont affichés avec la fenêtre du client comme parent afin qu'ils aient un ordre Z inférieur au contrôle. WF prend en charge les contrôles ancrés, il ajuste automatiquement la zone client à l'espace restant dans le formulaire parent. Mais c'est à peu près tout, SplitContainer ne peut pas fonctionner.

Notez que vous pouvez afficher un formulaire sur les panneaux d'un conteneur SplitContainer. Définissez leur propriété TopLevel sur False afin qu'ils se transforment en contrôles. Par exemple:

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     Form2 f2 = new Form2(); 
     f2.TopLevel = false; 
     f2.FormBorderStyle = FormBorderStyle.None; 
     f2.Visible = true; 
     splitContainer1.Panel1.Controls.Add(f2); 
    } 
    } 
Questions connexes