Represents a panel that dynamically lays out its contents in a grid composed of rows and columns.

The TableLayoutPanel control arranges its contents in a grid. Because the layout is performed both at design time and run time, it can change dynamically as the application environment changes. This gives the controls in the panel the ability to proportionally resize, so it can respond to changes such as the parent control resizing or text length changing due to localization.

Any Wisej control can be a child of the TableLayoutPanel control, including other instances of TableLayoutPanel. This allows you to construct sophisticated layouts that adapt to changes at runtime.

The TableLayoutPanel control can expand to accommodate new controls when they are added, depending on the value of the RowCount, ColumnCount, and GrowStyle properties. Setting either the RowCount or ColumnCount property to a value of 0 specifies that the TableLayoutPanel will be unbound in the corresponding direction.

You can also control the direction of expansion (horizontal or vertical) after the TableLayoutPanel control is full of child controls. By default, the TableLayoutPanel control expands downward by adding rows.

For a full list of properties, methods and events see the API documentation.



When enabled, the TableLayoutPanel control is able to resize itself to fit it's contents according to the AutoSizeMode property specified.



JavaScript Widget


Class name


Theme appearance

"panel", see Themes.

Child components

"pane" is the container. "captionbar" is the header. "title" is the title of the panel. "icon" is the icon of the panel, if applicable. "close-button" is the close button of the panel, if applicable. See JavaScript.

Toolcontainer state

"panel", see Embedded Tools.

Source code

Last updated