Domanda

Quando si crea un genitore MDI, l'intero "interno" del modulo è realizzata la regione MDI.

Se si aggiunge un MenuStrip al genitore MDI, la regione MDI viene ridimensionato un po 'per fare spazio al MenuStrip.

Ma se si aggiunge un pannello per la parte superiore del genitore MDI, l'intero interno è ancora la regione MDI. Il che significa che è possibile spostare i bambini MDI dietro il pannello, e nascondere la loro linea titolo. Se si sposta figli MDI dietro un MenuStrip, barre di scorrimento appaiono, e si può scorrere più in alto per accedere alla riga del titolo. Ma le barre di scorrimento non vengono visualizzati quando si utilizza un pannello al posto di un MenuStrip. Perché la regione MDI non conosce il pannello, suppongo.

Come posso scalare la regione MDI per iniziare al di sotto di un determinato valore di Y?

È stato utile?

Soluzione

Bene il corto di esso è non è possibile modificare la finestra padre / contenitore MDI in .NET. La finestra è ancora lì e lo si può trovare con le API Win32 se si desidera veramente.

Tuttavia, ciò che si descrive come il vostro obiettivo è fattibile. Dal momento che non v'è alcun codice non posso dire che cosa il vostro fare il male, ma il seguito viene illustrato questo lavoro:

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

Altri suggerimenti

Se csharptest.net è giusto, e non si può cambiare la regione MDI, ho trovato due modi per farlo:

  1. Aggiunta di più oggetti MenuStrip (ciascuno di questi movimenti della regione MDI 24 pixel inferiore sulla forma del genitore).
  2. Utilizzare l'evento LocationChanged dei figli MDI, e manualmente controllare che il loro valore Y è più grande del confine si vuole tenerli sotto.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top