天天看點

61.C# TableLayoutPanel控件

作者:數字雙碳王亮

摘要

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) 設定子控件跨的行數。

設計界面

61.C# TableLayoutPanel控件

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方法。

61.C# TableLayoutPanel控件

将按鈕控件添加到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

61.C# TableLayoutPanel控件