开发者

TableLayoutPanel's Control Columns properties

I've noticed that every control added to the TableLayoutPanel is giv开发者_如何学Cen "Column" and "Row" properties. How can I get access to these properties through code?

thanks:)


These properties only exist in the Properties Window, magic provided by the IExtenderProvider interface. They don't exist at runtime. Extended properties are:

  • ColumnSpan. Runtime: GetColumnSpan() and SetColumnSpan()
  • RowSpan. Runtime: GetRowSpan() and SetRowSpan()
  • Row. Runtime: GetRow() and SetRow()
  • Cell. Runtime: GetCellPosition() and SetCellPosition()
  • Column. Runtime: GetColumn() and SetColumn()

Obviously TLP was highly optimized to be used from the designer. It's kinda of a pain at runtime.


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.


Go here.

This properties are added by means of "extending properties", something that other controls like ToolTip uses.


// 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);

for more check this

http://en.csharp-online.net/TableLayoutPanel

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜