BeepMultiSplitterActionList
Smart-tag for BeepMultiSplitter -- 3 properties (ColumnCount, RowCount, CellBorderStyle), 4 layout mutation actions (Add/Remove Row/Column), IComponentChangeService-backed changes
Table of Contents
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)
| Property | Type | Category | Description |
|---|---|---|---|
| ColumnCount | int | Layout | Number of columns (min 1). Setters notify IComponentChangeService + call Invalidate. |
| RowCount | int | Layout | Number of rows (min 1). Setters notify IComponentChangeService + call Invalidate. |
| CellBorderStyle | TableLayoutPanelCellBorderStyle | Appearance | Border style for cells in the TableLayoutPanel. Notifies IComponentChangeService. |
Layout Actions (4)
| Action | Description |
|---|---|
| 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
| Section | Items |
|---|---|
| Layout | ColumnCount, RowCount (properties), AddRow, AddColumn, RemoveLastRow, RemoveLastColumn (actions) |
| Appearance | CellBorderStyle (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();