Pregunta

Al crear un padre MDI, todo el "dentro" de la forma se hace la región de MDI.

Si se agrega una menustrip al padre MDI, MDI la región se redujo un poco para dar cabida a la menustrip.

Sin embargo, si se agrega un panel a la parte superior de la MDI primario, todo el interior sigue siendo la región MDI. Lo que significa que puede mover los niños MDI detrás del panel y ocultar su línea de título. Si se muda niños MDI detrás de un menustrip, barras de desplazamiento aparecen, y usted puede desplazarse más arriba para acceder a la línea de título. Sin embargo, las barras de desplazamiento no aparece cuando se utiliza un panel en lugar de un menustrip. Debido a que la región de MDI no conoce el panel, supongo.

¿Cómo puedo escalar que la región MDI para iniciar por debajo de un valor de Y dado?

¿Fue útil?

Solución

Bueno, el corto de él es que no se puede modificar la ventana padre / contenedor de MDI en .NET. La ventana sigue ahí y se puede encontrar con las API de Win32 si realmente desea.

Sin embargo, lo que usted describe como su objetivo es factible. Dado que no hay ningún código que no puedo decir lo que estás haciendo mal, pero lo que sigue demuestra este trabajo:

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();
    }
}

Otros consejos

Si csharptest.net es correcto, y no se puede cambiar la región MDI, he encontrado dos maneras de hacerlo:

  1. Añadir varios objetos MenuStrip (cada uno de esos movimientos de la región MDI 24 píxeles más bajo en la forma parental).
  2. Utilice el evento LocationChanged de los hijos de MDI, y de forma manual compruebe que su valor Y es más grande que la frontera se desea mantenerlos a continuación.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top