Reputation: 5124
I've noticed that every control added to the TableLayoutPanel is given "Column" and "Row" properties.
How can I get access to these properties through code?
thanks:)
Upvotes: 4
Views: 3198
Reputation: 4129
// Create TableLayoutPanel TableLayoutPanel tlp = new TableLayoutPanel();
// Set the BorderStyle to Inset tlp.CellBorderStyle = TableLayoutPanelCellBorderStyle.Inset;
// Grid has two columns
tlp.ColumnCount = 2;
// Grid has two rows
tlp.RowCount = 2;
// If grid is full add extra cells by adding column
tlp.GrowStyle = TableLayoutPanelGrowStyle.AddColumns;
// Padding (pixels)within each cell (left, top, right, bottom)
tlp.Padding = new Padding(1, 1, 4, 5);
// Add TableLayoutPanel to the Forms controls
this.Controls.Add(tlp);
http://en.csharp-online.net/TableLayoutPanel
Upvotes: 0
Reputation: 941397
These properties only exist in the Properties Window, magic provided by the IExtenderProvider interface. They don't exist at runtime. Extended properties are:
Obviously TLP was highly optimized to be used from the designer. It's kinda of a pain at runtime.
Upvotes: 5
Reputation: 19956
Go here.
This properties are added by means of "extending properties", something that other controls like ToolTip
uses.
Upvotes: 3
Reputation: 1562
Although the properties designer shows the row and column as properties of the added control thay are set programatically using a method on the table layout panel itself (SetColumn(control, index) and SetRow(control, index)).
This pattern of behaviour is similar the tool tip component and the error component.
Upvotes: 3