Question

Lors de la création d'un parent MDI, l'ensemble de la forme « à l'intérieur » est réalisée la région de MDI.

Si vous ajoutez un MenuStrip au parent MDI, la région MDI est réduite un peu pour faire place à la MenuStrip.

Mais si vous ajoutez un panneau au dessus du parent MDI, l'ensemble de l'intérieur est toujours la région MDI. Ce qui signifie que vous pouvez déplacer les enfants MDI derrière le panneau, et cacher leur ligne de titre. Si vous déplacez les enfants MDI derrière un MenuStrip, apparaissent les barres de défilement, et vous pouvez faire défiler plus haut pour accéder à la ligne de titre. Mais les barres de défilement ne semble pas lorsque vous utilisez un panneau au lieu d'un MenuStrip. Parce que la région MDI ne connaît pas le panneau, je suppose.

Comment puis-je échelle la région MDI pour commencer dessous d'une valeur Y donnée?

Était-ce utile?

La solution

Eh bien, le court, il est vous ne pouvez pas modifier la fenêtre parent MDI / conteneur en .Net. La fenêtre est toujours là et vous pouvez le trouver avec Win32 APIs si vous désirez vraiment.

Cependant, ce que vous décrivez comme votre objectif est réalisable. Je ne peux pas dire car il n'y a pas de code ce que vous faites mal, mais le suivant illustre ce travail:

public class Form1 : Form
{
    static void Main(string[] args) { Application.Run(new Form1()); }

    public Form1()
    {
        this.IsMdiContainer = true;
        Panel test = new Panel();
        test.Dock = DockStyle.Top;
        test.Height = 100;
        this.Controls.Add(test);

        Form child = new Form();
        child.MdiParent = this;
        child.Text = "Child";
        child.Show();
    }
}

Autres conseils

Si csharptest.net est bon, et on ne peut pas changer la région MDI, j'ai trouvé deux façons de le faire:

  1. Ajout de plusieurs objets MenuStrip (chacun de ces mouvements de la région MDI 24 pixels plus bas sur le formulaire parent).
  2. Utilisez l'événement LocationChanged des enfants MDI, et vérifier manuellement que leur valeur Y est supérieure à la frontière que vous souhaitez les conserver ci-dessous.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top