Ich lade Bilder dynamisch innerhalb einer FlowLayoutPanel
. Ich benötige für dieses Panel eine automatische Größe, aber nur vertikal.FlowLayoutPanel AutoSize nur in vertikaler Richtung?
Ist dies möglich, und wenn ja, wie gehe ich vor?
Ich lade Bilder dynamisch innerhalb einer FlowLayoutPanel
. Ich benötige für dieses Panel eine automatische Größe, aber nur vertikal.FlowLayoutPanel AutoSize nur in vertikaler Richtung?
Ist dies möglich, und wenn ja, wie gehe ich vor?
Einfache, fügen Sie ein Ereignis vom Typ Kontrolle hinzugefügt:
private void flowLayoutPanel1_ControlAdded(object sender, ControlEventArgs e)
{
if (flowLayoutPanel1.Controls.Count % 10 == 0)
flowLayoutPanel1.SetFlowBreak(e.Control as Control, true);
}
gesetzt AutoSize = true
gesetzt flowdirection = LeftToRight
ich die Größe von Panel dinamically festgelegt haben. Beispiel:
int newHeight= listImages.Count/10 * 100; flowLayoutPanel1.Size = new Size(1143, newHeight);
Es funktioniert für mich. Thx alle
'int newHeight = listImages.Count/10 * 100;' ist das gleiche wie int 'newHeight = listImages.Count * 10; ' –
Ich weiß aber * int newHeight = listImages.Count/10 * 100 *; es ist besser zu verstehen, dass 10 die Anzahl der Bilder pro Zeile und 100 die Höhe von jedem – Ladessa
Hinweis: es wäre sogar lesbarer und wartbarer wie folgt: 'int newHeight = listImages.Count/numberOfPicturesPerLine * pictureHeight', mit Definitionen wie 'const int numberOfPicturesPerLine = 10;' –
_Es ist möglich? _ Hast du es versucht? –
Ich habe nur die Eigenschaft AutoSize von flowLayoutPanel = true; aber das Bedienfeld wird horizontal vergrößert – Ladessa
Setzen Sie die FlowBreak-Eigenschaft für die Steuerelemente, die Sie zu True hinzufügen. Wenn Sie sie im Code hinzufügen, verwenden Sie die Methode SetFlowBreak() des Panels. –