示例1:
private System.Windows.Forms.TableLayoutPanel baseLayoutPanel;
baseLayoutPanel.Controls.Add(CommonFrm.FfrmFuncList, 0, 0);
这段代码用于将一个控件 CommonFrm.FfrmFuncList 添加到 TableLayoutPanel 控件 baseLayoutPanel 的指定位置(第 0 行,第 0 列)。
解析
-
System.Windows.Forms.TableLayoutPanel:TableLayoutPanel是一个 Windows Forms 控件,用于创建网格布局。它允许在一个网格中管理多个子控件,每个子控件可以放置在特定的行和列中。- 在这段代码中,
baseLayoutPanel是一个TableLayoutPanel类型的变量。
-
baseLayoutPanel.Controls.Add():Controls属性是TableLayoutPanel控件的控件集合。通过Controls.Add()方法,可以将子控件添加到TableLayoutPanel中。- 该方法用于将一个控件(如按钮、标签等)添加到
TableLayoutPanel的指定位置。
-
CommonFrm.FfrmFuncList:- 这是要添加到
baseLayoutPanel中的控件。CommonFrm.FfrmFuncList表示一个具体的控件实例(可能是一个Form、Panel或其他Control),它将被放置在TableLayoutPanel的某一格中。 CommonFrm是包含控件FfrmFuncList的类或对象的名称。
- 这是要添加到
-
参数
(CommonFrm.FfrmFuncList, 0, 0):- 第一个参数(
CommonFrm.FfrmFuncList):要添加到TableLayoutPanel中的控件。 - 第二个参数(
0):目标单元格的列索引。在此例中,0表示将控件添加到第 0 列。 - 第三个参数(
0):目标单元格的行索引。在此例中,0表示将控件添加到第 0 行。
因此,
baseLayoutPanel.Controls.Add(CommonFrm.FfrmFuncList, 0, 0);的含义是:- 将
CommonFrm.FfrmFuncList控件添加到baseLayoutPanel的第 0 行,第 0 列的单元格中。
- 第一个参数(
示例2
假设 baseLayoutPanel 是一个 2x2 的 TableLayoutPanel,并且我们想在第 0 行,第 0 列放置 FfrmFuncList 控件,可以这样实现:
baseLayoutPanel.RowCount = 2;
baseLayoutPanel.ColumnCount = 2;
baseLayoutPanel.Controls.Add(CommonFrm.FfrmFuncList, 0, 0); // 将 FfrmFuncList 添加到第 0 行,第 0 列
1. TableLayoutPanel 控件的主要属性
- RowCount:定义表格的行数。
- ColumnCount:定义表格的列数。
- ColumnStyles 和 RowStyles:设置列和行的大小,可以是固定大小、百分比大小,或者自动调整大小。
- Controls:获取或设置表格中的子控件。
- CellBorderStyle:设置单元格边框样式。
2. 创建 TableLayoutPanel 示例
展示如何使用 TableLayoutPanel 创建一个简单的 2x2 布局,包含四个按钮。
示例3 代码
using System;
using System.Windows.Forms;public class TableLayoutPanelExample : Form
{public TableLayoutPanelExample(){// 创建 TableLayoutPanelTableLayoutPanel tableLayoutPanel = new TableLayoutPanel();// 设置 TableLayoutPanel 属性tableLayoutPanel.RowCount = 2; // 2 行tableLayoutPanel.ColumnCount = 2; // 2 列tableLayoutPanel.Dock = DockStyle.Fill; // 充满窗体tableLayoutPanel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; // 单线边框// 设置行和列的样式(50% 宽度和高度)tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); // 创建按钮Button button1 = new Button() { Text = "Button 1" };Button button2 = new Button() { Text = "Button 2" };Button button3 = new Button() { Text = "Button 3" };Button button4 = new Button() { Text = "Button 4" };// 将按钮添加到 TableLayoutPanel 的指定单元格中tableLayoutPanel.Controls.Add(button1, 0, 0); // 添加 button1 到第 0 行,第 0 列tableLayoutPanel.Controls.Add(button2, 1, 0); // 添加 button2 到第 0 行,第 1 列tableLayoutPanel.Controls.Add(button3, 0, 1); // 添加 button3 到第 1 行,第 0 列tableLayoutPanel.Controls.Add(button4, 1, 1); // 添加 button4 到第 1 行,第 1 列// 将 TableLayoutPanel 添加到窗体this.Controls.Add(tableLayoutPanel);// 设置窗体属性this.Text = "TableLayoutPanel 示例";this.Size = new System.Drawing.Size(300, 200);}[STAThread]public static void Main(){Application.EnableVisualStyles();Application.Run(new TableLayoutPanelExample());}
}
运行效果
- 运行代码后,会出现一个包含 4 个按钮的窗口。
TableLayoutPanel把按钮排列在 2 行 2 列的网格中,每个按钮占据一个单元格。- 各单元格的大小是根据百分比设置的,网格会随着窗体的大小变化而自动调整。
常见应用场景
- 表单布局:将输入框、标签和按钮整齐地排列在表格中。
- 面板布局:创建工具面板或功能菜单时,用
TableLayoutPanel将控件划分成均匀的格子。 - 响应式设计:
TableLayoutPanel的行和列可以按百分比调整,使其可以随着窗口大小自动缩放,适合不同分辨率的显示。
TableLayoutPanel 提供了灵活的网格布局,非常适合创建结构化和响应式的 Windows 界面。通过调整 RowStyles 和 ColumnStyles 的属性,可以创建各种复杂布局。
