2017-08-08 1 views
0

In meinem Formular habe ich ein Panel mit Autosize = True.Winforms Panel Größe

Das Panel enthält ein SplitContainer-Steuerelement mit 2 horizontal angeordneten Panels.

Das obere Feld enthält eine Datagridview und das untere Feld enthält ein Textfeld.

Gibt es eine Weise, die ich die obere Abdeckung programmatisch die Größe verändern kann, und damit die gesamten Splitcontainer basierend auf Änderungen in der Höhe des Datagridview (durch die Anzahl der Zeilen bestimmt)

UPDATE: Ich bin jetzt in der Lage Ändern Sie die Größe des SplitContainer mit Dock = Bottom, das Layout-Ereignis des übergeordneten Bedienfelds wird jedoch nicht ausgelöst, wenn die Höhe des SplitContainer-Steuerelements geändert wird, obwohl das übergeordnete Bedienfeld über Autosize = True

+0

Es wäre hilfreich, wenn Sie hinzufügen könnten, wie neue Zeilen hinzugefügt werden! –

Antwort

0

Versuchen Sie, den Splitter festzulegen Abstand des SplitContainer basierend auf der Höhe des Gitters.

SplitterDistance Ruft die Position des Teilers in Pixeln, von der linken oder oberen Rand des Splitcontainer.

Via https://msdn.microsoft.com/en-us/library/system.windows.forms.splitcontainer.splitterdistance(v=vs.110).aspx

bearbeiten Was für mich gearbeitet wurde Dock für den Splitcontainer zu None zu setzen, die dann mir die Größe des Splitcontainer (Aufruf SplitContainer.Height) abbinden und Größe des Panels anpassen, damit es in den SplitContainer passt.

Edit 2 Um die Splitcontainer zu Auto-Größe seiner Breite zu ermöglichen, können Sie versuchen, die folgenden:

splitContainer.Width = this.ClientRectangle.Width - (splitContainer.Location.X * 2) 

This.ClientRectangle.Width ohne die Grenze, welche die Breite des Fensters erhalten sollte (wenn das übergeordnete ist die Form).

+0

Ich habe bereits versucht, den SplitterDistance zu ändern, aber es erreicht nicht mein gewünschtes Ziel, weil ich möchte, dass die gesamte Höhe des SplitContainer nicht nur in einem Panel verändert wird. –

+0

@ H.Tran Bitte lassen Sie mich wissen, ob die obige Änderung hilft. – nolnah93

+0

Ich habe bereits versucht, den SplitterDistance zu ändern, aber es erreicht nicht mein angestrebtes Ziel, weil ich möchte, dass die gesamte Höhe des SplitContainer nicht nur in einem Panel verändert wird. –

Verwandte Themen