Overview

Namespace: TheTechIdea.Beep.Winform.Controls.Design.Server.ActionLists
Inheritance: DesignerActionList | Visibility: internal sealed

BeepMultiSplitterActionList provides the smart-tag for BeepMultiSplitter. It exposes 3 properties for configuring the grid layout and 4 action methods for dynamically adding and removing rows/columns at design time. All mutations route through IComponentChangeService with notifications before and after each change.

Smart-Tag Properties (3)

PropertyTypeCategoryDescription
ColumnCountintLayoutNumber of columns (min 1). Setters notify IComponentChangeService + call Invalidate.
RowCountintLayoutNumber of rows (min 1). Setters notify IComponentChangeService + call Invalidate.
CellBorderStyleTableLayoutPanelCellBorderStyleAppearanceBorder style for cells in the TableLayoutPanel. Notifies IComponentChangeService.

Layout Actions (4)

ActionDescription
AddRow()Increments RowCount, appends a RowStyle(Percent, 100F), and adds a Label placeholder for each column in the new row. Notifies IComponentChangeService before/after.
AddColumn()Increments ColumnCount, appends a ColumnStyle(Percent, 100F), and adds a Label placeholder for each row in the new column.
RemoveLastRow()Removes all controls on the last row, removes the last RowStyle, decrements RowCount. No-op if only 1 row remains.
RemoveLastColumn()Removes all controls on the last column, removes the last ColumnStyle, decrements ColumnCount. No-op if only 1 column remains.

Smart-Tag Sections

SectionItems
LayoutColumnCount, RowCount (properties), AddRow, AddColumn, RemoveLastRow, RemoveLastColumn (actions)
AppearanceCellBorderStyle (property)

Examples

// At design time, use smart-tag:
// Smart-tag > Layout > Set ColumnCount = 3, RowCount = 2
// Smart-tag > Layout > "Add Row" -> adds a 4th row with placeholders
// Smart-tag > Layout > "Add Column" -> adds column with labels
// Smart-tag > Appearance > CellBorderStyle = Inset

// All mutations go through:
// IComponentChangeService.OnComponentChanging(Component, null);
// ... perform change ...
// IComponentChangeService.OnComponentChanged(Component, null, null, null);
// Splitter.Invalidate();