摘要
TableLayoutPanel 在網格中排列内容,提供類似于 HTML <table> 元素的功能。 TableLayoutPanel 控件允許你将控件放在網格布局中,而無需精确指定每個控件的位置。 其單元格排列為行和列,并且這些行和列可具有不同的大小。 可以跨行和列合并單元格。 單元格可以包含窗體所能包含的任何内容,并且在大多數其他方面都可以作為容器使用。
TableLayoutPanel 控件還在運作時提供按比例調整大小的功能,是以你的布局可以在窗體調整大小時平滑地進行更改。 這使得 TableLayoutPanel 控件非常适合資料輸入窗體和本地化應用程式等用途。
正文
屬性
ColumnCount | 擷取或設定表中允許的最大列數。 |
ColumnStyles | 擷取 TableLayoutPanel 的列樣式的集合。 |
GrowStyle | 擷取或設定一個值,該值訓示當現有的所有單元格都被占用時,TableLayoutPanel 控件是否應該擴充以容納新單元格。 |
RowCount | 擷取或設定表中允許的最大行數。 |
RowStyles | 擷取 TableLayoutPanel 的行樣式的集合。 |
CellBorderStyle | 擷取或設定單元格邊框的樣式。 |
方法
GetRow(Control) | 傳回指定子控件的行位置。 |
GetRowHeights() | 傳回一個數組,該數組表示 TableLayoutPanel 中的行的高度(以像素為機關)。 |
GetRowSpan(Control) | 傳回指定子控件跨的行數。 |
GetColumn(Control) | 傳回指定子控件的列位置。 |
GetColumnSpan(Control) | 傳回指定子控件跨的列數。 |
GetColumnWidths() | 傳回一個數組,該數組表示 TableLayoutPanel 中的列的寬度(以像素為機關)。 |
SetCellPosition(Control, TableLayoutPanelCellPosition) | 設定表示單元格的行号和列号的 TableLayoutPanelCellPosition。 |
SetColumn(Control, Int32) | 設定指定子控件的列位置。 |
SetColumnSpan(Control, Int32) | 設定子控件跨的列數。 |
SetRow(Control, Int32) | 設定指定子控件的行位置。 |
SetRowSpan(Control, Int32) | 設定子控件跨的行數。 |
設計界面
CellBorderStyle
Inset | 2 | 單線凹陷邊框。 |
InsetDouble | 3 | 雙線凹陷邊框。 |
None | 無邊框。 | |
Outset | 4 | 單線凸起邊框。 |
OutsetDouble | 5 | 雙線凸起邊框。 |
OutsetPartial | 6 | 包含凸起部分的單線邊框。 |
Single | 1 | 單行邊框。 |
若要在Cell運作時設定、Column、Row、ColumnSpan和RowSpan屬性,請使用 SetCellPosition、SetColumn、、 SetRowSetColumnSpan和SetRowSpan方法。
若要在運作時讀取Cell、、ColumnSpan``Row、和RowSpan屬性,請使用 GetCellPosition、ColumnGetColumn、GetRow、 GetColumnSpan和GetRowSpan方法。
将按鈕控件添加到Table的1列2行
修改Table中控件的位置
private void btnSetPostion_Click(object sender, EventArgs e)
{
tableLayoutPanel1.Controls.Add(btnSetPostion, 1, 2);
}
private void btnModifyUser_Click(object sender, EventArgs e)
{
tableLayoutPanel1.SetCellPosition(txtUser, new TableLayoutPanelCellPosition()
{
Column = 1,
Row = 2,
});
}
設定跨列或行顯示ColumnSpan