Export (0) Print
Expand All
1 out of 2 rated this helpful - Rate this topic

FlowLayoutPanel Class

Represents a panel that dynamically lays out its contents horizontally or vertically.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
public class FlowLayoutPanel : Panel, IExtenderProvider
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class FlowLayoutPanel extends Panel implements IExtenderProvider
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
public class FlowLayoutPanel extends Panel implements IExtenderProvider
Not applicable.

The FlowLayoutPanel control arranges its contents in a horizontal or vertical flow direction. Its contents can be wrapped from one row to the next, or from one column to the next. Alternatively, its contents can be clipped instead of wrapped.

You can specify the flow direction by setting the value of the FlowDirection property. The FlowLayoutPanel control correctly reverses its flow direction in right-to-left (RTL) layouts. You can also specify whether the contents of the FlowLayoutPanel control are wrapped or clipped by setting the value of the WrapContents property.

Any Windows Forms control, including other instances of FlowLayoutPanel, can be a child of the FlowLayoutPanel control. With this capability, you can construct sophisticated layouts that adapt to your form's dimensions at run time.

Docking and anchoring behaviors of child controls differ from the behaviors in other container controls. Both docking and anchoring are relative to the largest control in the flow direction. For more information, see How to: Anchor and Dock Child Controls in a FlowLayoutPanel Control.

The following example shows how to set the FlowDirection and WrapContents properties on a FlowLayoutPanel control. Paste the code into the Form1 source file. If your project contains a file named Form1.Designer.cs or Form1.Designer.vb, remove that file from the project. You may need to click the Show All Files button in Solution Explorer to see the designer file.


using System;
using System.Windows.Forms;

public class Form1 : System.Windows.Forms.Form
{
	private void wrapContentsCheckBox_CheckedChanged(
		System.Object sender, 
		System.EventArgs e)
    {
        this.FlowLayoutPanel1.WrapContents = 
			this.wrapContentsCheckBox.Checked;
    }

    private void flowTopDownBtn_CheckedChanged(
		System.Object sender, 
		System.EventArgs e)
    {
        this.FlowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
    }

    private void flowBottomUpBtn_CheckedChanged(
		System.Object sender, 
		System.EventArgs e)
    {
        this.FlowLayoutPanel1.FlowDirection = FlowDirection.BottomUp;
    }

    private void flowLeftToRight_CheckedChanged(
		System.Object sender, 
		System.EventArgs e)
    {
        this.FlowLayoutPanel1.FlowDirection = FlowDirection.LeftToRight;
    }

    private void flowRightToLeftBtn_CheckedChanged(
		System.Object sender, 
		System.EventArgs e)
    {
        this.FlowLayoutPanel1.FlowDirection = FlowDirection.RightToLeft;
    }

#region " Windows Form Designer generated code "

    public Form1() : base()
    {        

        //This call is required by the Windows Form Designer.
        InitializeComponent();

        //Add any initialization after the InitializeComponent() call

    }

    //Form overrides dispose to clean up the component list.
    protected override void Dispose(bool disposing)
    {
        if (disposing)
        {
            if (components != null)
            {
                components.Dispose();
            }
        }
        base.Dispose(disposing);
    }

	private System.Windows.Forms.FlowLayoutPanel FlowLayoutPanel1;
	private System.Windows.Forms.CheckBox wrapContentsCheckBox;
	private System.Windows.Forms.RadioButton flowTopDownBtn;
	private System.Windows.Forms.RadioButton flowBottomUpBtn;
	private System.Windows.Forms.RadioButton flowLeftToRight;
	private System.Windows.Forms.RadioButton flowRightToLeftBtn;
	private System.Windows.Forms.Button Button1;
	private System.Windows.Forms.Button Button2;
	private System.Windows.Forms.Button Button3;
	private System.Windows.Forms.Button Button4;

	//Required by the Windows Form Designer
    private System.ComponentModel.IContainer components;

    //NOTE: The following procedure is required by the Windows Form Designer
    //It can be modified using the Windows Form Designer.  
    //Do not modify it using the code editor.
    [System.Diagnostics.DebuggerNonUserCode]
    private void InitializeComponent()
    {
		this.FlowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
		this.Button1 = new System.Windows.Forms.Button();
		this.Button2 = new System.Windows.Forms.Button();
		this.Button3 = new System.Windows.Forms.Button();
		this.Button4 = new System.Windows.Forms.Button();
		this.wrapContentsCheckBox = new System.Windows.Forms.CheckBox();
		this.flowTopDownBtn = new System.Windows.Forms.RadioButton();
		this.flowBottomUpBtn = new System.Windows.Forms.RadioButton();
		this.flowLeftToRight = new System.Windows.Forms.RadioButton();
		this.flowRightToLeftBtn = new System.Windows.Forms.RadioButton();
		this.FlowLayoutPanel1.SuspendLayout();
		this.SuspendLayout();
// 
// FlowLayoutPanel1
// 
		this.FlowLayoutPanel1.Controls.Add(this.Button1);
		this.FlowLayoutPanel1.Controls.Add(this.Button2);
		this.FlowLayoutPanel1.Controls.Add(this.Button3);
		this.FlowLayoutPanel1.Controls.Add(this.Button4);
		this.FlowLayoutPanel1.Location = new System.Drawing.Point(47, 55);
		this.FlowLayoutPanel1.Name = "FlowLayoutPanel1";
		this.FlowLayoutPanel1.TabIndex = 0;
// 
// Button1
// 
		this.Button1.Location = new System.Drawing.Point(3, 3);
		this.Button1.Name = "Button1";
		this.Button1.TabIndex = 0;
		this.Button1.Text = "Button1";
// 
// Button2
// 
		this.Button2.Location = new System.Drawing.Point(84, 3);
		this.Button2.Name = "Button2";
		this.Button2.TabIndex = 1;
		this.Button2.Text = "Button2";
// 
// Button3
// 
		this.Button3.Location = new System.Drawing.Point(3, 32);
		this.Button3.Name = "Button3";
		this.Button3.TabIndex = 2;
		this.Button3.Text = "Button3";
// 
// Button4
// 
		this.Button4.Location = new System.Drawing.Point(84, 32);
		this.Button4.Name = "Button4";
		this.Button4.TabIndex = 3;
		this.Button4.Text = "Button4";
// 
// wrapContentsCheckBox
// 
		this.wrapContentsCheckBox.Location = new System.Drawing.Point(46, 162);
		this.wrapContentsCheckBox.Name = "wrapContentsCheckBox";
		this.wrapContentsCheckBox.TabIndex = 1;
		this.wrapContentsCheckBox.Text = "Wrap Contents";
		this.wrapContentsCheckBox.CheckedChanged += new System.EventHandler(this.wrapContentsCheckBox_CheckedChanged);
// 
// flowTopDownBtn
// 
		this.flowTopDownBtn.Location = new System.Drawing.Point(45, 193);
		this.flowTopDownBtn.Name = "flowTopDownBtn";
		this.flowTopDownBtn.TabIndex = 2;
		this.flowTopDownBtn.Text = "Flow TopDown";
		this.flowTopDownBtn.CheckedChanged += new System.EventHandler(this.flowTopDownBtn_CheckedChanged);
// 
// flowBottomUpBtn
// 
		this.flowBottomUpBtn.Location = new System.Drawing.Point(44, 224);
		this.flowBottomUpBtn.Name = "flowBottomUpBtn";
		this.flowBottomUpBtn.TabIndex = 3;
		this.flowBottomUpBtn.Text = "Flow BottomUp";
		this.flowBottomUpBtn.CheckedChanged += new System.EventHandler(this.flowBottomUpBtn_CheckedChanged);
// 
// flowLeftToRight
// 
		this.flowLeftToRight.Location = new System.Drawing.Point(156, 193);
		this.flowLeftToRight.Name = "flowLeftToRight";
		this.flowLeftToRight.TabIndex = 4;
		this.flowLeftToRight.Text = "Flow LeftToRight";
		this.flowLeftToRight.CheckedChanged += new System.EventHandler(this.flowLeftToRight_CheckedChanged);
// 
// flowRightToLeftBtn
// 
		this.flowRightToLeftBtn.Location = new System.Drawing.Point(155, 224);
		this.flowRightToLeftBtn.Name = "flowRightToLeftBtn";
		this.flowRightToLeftBtn.TabIndex = 5;
		this.flowRightToLeftBtn.Text = "Flow RightToLeft";
		this.flowRightToLeftBtn.CheckedChanged += new System.EventHandler(this.flowRightToLeftBtn_CheckedChanged);
// 
// Form1
// 
		this.ClientSize = new System.Drawing.Size(292, 266);
		this.Controls.Add(this.flowRightToLeftBtn);
		this.Controls.Add(this.flowLeftToRight);
		this.Controls.Add(this.flowBottomUpBtn);
		this.Controls.Add(this.flowTopDownBtn);
		this.Controls.Add(this.wrapContentsCheckBox);
		this.Controls.Add(this.FlowLayoutPanel1);
		this.Name = "Form1";
		this.Text = "Form1";
		this.FlowLayoutPanel1.ResumeLayout(false);
		this.ResumeLayout(false);
	}

#endregion
}

import System.*;
import System.Windows.Forms.*;

public class Form1 extends System.Windows.Forms.Form
{
    private void wrapContentsCheckBox_CheckedChanged(Object sender, 
        System.EventArgs e)
    {
        this.flowLayoutPanel1.set_WrapContents(this.wrapContentsCheckBox.
            get_Checked());
    } //wrapContentsCheckBox_CheckedChanged

    private void flowTopDownBtn_CheckedChanged(Object sender,
        System.EventArgs e)
    {
        this.flowLayoutPanel1.set_FlowDirection(FlowDirection.TopDown);
    } //flowTopDownBtn_CheckedChanged

    private void flowBottomUpBtn_CheckedChanged(Object sender,
        System.EventArgs e)
    {
        this.flowLayoutPanel1.set_FlowDirection(FlowDirection.BottomUp);
    } //flowBottomUpBtn_CheckedChanged

    private void flowLeftToRight_CheckedChanged(Object sender, 
        System.EventArgs e)
    {
        this.flowLayoutPanel1.set_FlowDirection(FlowDirection.LeftToRight);
    } //flowLeftToRight_CheckedChanged

    private void flowRightToLeftBtn_CheckedChanged(Object sender,
        System.EventArgs e)
    {
        this.flowLayoutPanel1.set_FlowDirection(FlowDirection.RightToLeft);
    } //flowRightToLeftBtn_CheckedChanged

    #region " Windows Form Designer generated code "
    public Form1()
    {
        //This call is required by the Windows Form Designer.
        InitializeComponent();
    } //Form1

    //Add any initialization after the InitializeComponent() call
    //Form overrides dispose to clean up the component list.
    protected void Dispose(boolean disposing)
    {
        if (disposing) {
            if (components != null) {
                components.Dispose();
            }
        }
        super.Dispose(disposing);
    } //Dispose

    private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
    private System.Windows.Forms.CheckBox wrapContentsCheckBox;
    private System.Windows.Forms.RadioButton flowTopDownBtn;
    private System.Windows.Forms.RadioButton flowBottomUpBtn;
    private System.Windows.Forms.RadioButton flowLeftToRight;
    private System.Windows.Forms.RadioButton flowRightToLeftBtn;
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.Button button2;
    private System.Windows.Forms.Button button3;
    private System.Windows.Forms.Button button4;

    //Required by the Windows Form Designer
    private System.ComponentModel.IContainer components;

    //NOTE: The following procedure is required by the Windows Form Designer
    //It can be modified using the Windows Form Designer.  
    //Do not modify it using the code editor.
    /** @attribute System.Diagnostics.DebuggerNonUserCode()
     */
    private void InitializeComponent()
    {
        this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
        this.button1 = new System.Windows.Forms.Button();
        this.button2 = new System.Windows.Forms.Button();
        this.button3 = new System.Windows.Forms.Button();
        this.button4 = new System.Windows.Forms.Button();
        this.wrapContentsCheckBox = new System.Windows.Forms.CheckBox();
        this.flowTopDownBtn = new System.Windows.Forms.RadioButton();
        this.flowBottomUpBtn = new System.Windows.Forms.RadioButton();
        this.flowLeftToRight = new System.Windows.Forms.RadioButton();
        this.flowRightToLeftBtn = new System.Windows.Forms.RadioButton();
        this.flowLayoutPanel1.SuspendLayout();
        this.SuspendLayout();
        // 
        // flowLayoutPanel1
        // 
        this.flowLayoutPanel1.get_Controls().Add(this.button1);
        this.flowLayoutPanel1.get_Controls().Add(this.button2);
        this.flowLayoutPanel1.get_Controls().Add(this.button3);
        this.flowLayoutPanel1.get_Controls().Add(this.button4);
        this.flowLayoutPanel1.set_Location(new System.Drawing.Point(47, 55));
        this.flowLayoutPanel1.set_Name("flowLayoutPanel1");
        this.flowLayoutPanel1.set_TabIndex(0);
        // 
        // button1
        // 
        this.button1.set_Location(new System.Drawing.Point(3, 3));
        this.button1.set_Name("button1");
        this.button1.set_TabIndex(0);
        this.button1.set_Text("button1");
        // 
        // button2
        // 
        this.button2.set_Location(new System.Drawing.Point(84, 3));
        this.button2.set_Name("button2");
        this.button2.set_TabIndex(1);
        this.button2.set_Text("button2");
        // 
        // button3
        // 
        this.button3.set_Location(new System.Drawing.Point(3, 32));
        this.button3.set_Name("button3");
        this.button3.set_TabIndex(2);
        this.button3.set_Text("button3");
        // 
        // button4
        // 
        this.button4.set_Location(new System.Drawing.Point(84, 32));
        this.button4.set_Name("button4");
        this.button4.set_TabIndex(3);
        this.button4.set_Text("button4");
        // 
        // wrapContentsCheckBox
        // 
        this.wrapContentsCheckBox.set_Location(new System.Drawing.Point(46, 162));
        this.wrapContentsCheckBox.set_Name("wrapContentsCheckBox");
        this.wrapContentsCheckBox.set_TabIndex(1);
        this.wrapContentsCheckBox.set_Text("Wrap Contents");
        this.wrapContentsCheckBox.add_CheckedChanged(new System.EventHandler(
            this.wrapContentsCheckBox_CheckedChanged));
        // 
        // flowTopDownBtn
        // 
        this.flowTopDownBtn.set_Location(new System.Drawing.Point(45, 193));
        this.flowTopDownBtn.set_Name("flowTopDownBtn");
        this.flowTopDownBtn.set_TabIndex(2);
        this.flowTopDownBtn.set_Text("Flow TopDown");
        this.flowTopDownBtn.add_CheckedChanged(new System.EventHandler(
            this.flowTopDownBtn_CheckedChanged));
        // 
        // flowBottomUpBtn
        // 
        this.flowBottomUpBtn.set_Location(new System.Drawing.Point(44, 224));
        this.flowBottomUpBtn.set_Name("flowBottomUpBtn");
        this.flowBottomUpBtn.set_TabIndex(3);
        this.flowBottomUpBtn.set_Text("Flow BottomUp");
        this.flowBottomUpBtn.add_CheckedChanged(new System.EventHandler(
            this.flowBottomUpBtn_CheckedChanged));
        // 
        // flowLeftToRight
        // 
        this.flowLeftToRight.set_Location(new System.Drawing.Point(156, 193));
        this.flowLeftToRight.set_Name("flowLeftToRight");
        this.flowLeftToRight.set_TabIndex(4);
        this.flowLeftToRight.set_Text("Flow LeftToRight");
        this.flowLeftToRight.add_CheckedChanged(new System.EventHandler(
            this.flowLeftToRight_CheckedChanged));
        // 
        // flowRightToLeftBtn
        // 
        this.flowRightToLeftBtn.set_Location(new System.Drawing.Point(155, 224));
        this.flowRightToLeftBtn.set_Name("flowRightToLeftBtn");
        this.flowRightToLeftBtn.set_TabIndex(5);
        this.flowRightToLeftBtn.set_Text("Flow RightToLeft");
        this.flowRightToLeftBtn.add_CheckedChanged(new System.EventHandler(
            this.flowRightToLeftBtn_CheckedChanged));
        // 
        // Form1
        // 
        this.set_ClientSize(new System.Drawing.Size(292, 266));
        this.get_Controls().Add(this.flowRightToLeftBtn);
        this.get_Controls().Add(this.flowLeftToRight);
        this.get_Controls().Add(this.flowBottomUpBtn);
        this.get_Controls().Add(this.flowTopDownBtn);
        this.get_Controls().Add(this.wrapContentsCheckBox);
        this.get_Controls().Add(this.flowLayoutPanel1);
        this.set_Name("Form1");
        this.set_Text("Form1");
        this.flowLayoutPanel1.ResumeLayout(false);
        this.ResumeLayout(false);
    } //InitializeComponent
    #endregion
} //Form1 

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
         System.Windows.Forms.ScrollableControl
           System.Windows.Forms.Panel
            System.Windows.Forms.FlowLayoutPanel
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.