TableLayoutPanel 类  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示一个面板,它可以在一个由行和列组成的网格中对其内容进行动态布局。
public ref class TableLayoutPanel : System::Windows::Forms::Panel, System::ComponentModel::IExtenderProvider[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Windows.Forms.Docking(System.Windows.Forms.DockingBehavior.Never)]
public class TableLayoutPanel : System.Windows.Forms.Panel, System.ComponentModel.IExtenderProvider[System.Windows.Forms.Docking(System.Windows.Forms.DockingBehavior.Never)]
public class TableLayoutPanel : System.Windows.Forms.Panel, System.ComponentModel.IExtenderProvider[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Windows.Forms.Docking(System.Windows.Forms.DockingBehavior.Never)>]
type TableLayoutPanel = class
    inherit Panel
    interface IExtenderProvider[<System.Windows.Forms.Docking(System.Windows.Forms.DockingBehavior.Never)>]
type TableLayoutPanel = class
    inherit Panel
    interface IExtenderProviderPublic Class TableLayoutPanel
Inherits Panel
Implements IExtenderProvider- 继承
- 派生
- 属性
- 实现
示例
下面的代码示例演示如何重写 OnCellPaint 方法,以便为单元格创建自定义外观。
public class DemoTableLayoutPanel : TableLayoutPanel
{
    protected override void OnCellPaint(TableLayoutCellPaintEventArgs e)
    {
        base.OnCellPaint(e);
        Control c = this.GetControlFromPosition(e.Column, e.Row);
        if ( c != null )
        {
            Graphics g = e.Graphics;
            g.DrawRectangle(
                Pens.Red, 
                e.CellBounds.Location.X+1,
                e.CellBounds.Location.Y + 1,
                e.CellBounds.Width - 2, e.CellBounds.Height - 2);
            g.FillRectangle(
                Brushes.Blue, 
                e.CellBounds.Location.X + 1, 
                e.CellBounds.Location.Y + 1, 
                e.CellBounds.Width - 2, 
                e.CellBounds.Height - 2);
        };
    }
}
Public Class DemoTableLayoutPanel
    Inherits TableLayoutPanel
    Protected Overrides Sub OnCellPaint( _
    ByVal e As System.Windows.Forms.TableLayoutCellPaintEventArgs)
        MyBase.OnCellPaint(e)
        Dim c As Control = Me.GetControlFromPosition(e.Column, e.Row)
        If c IsNot Nothing Then
            Dim g As Graphics = e.Graphics
            g.DrawRectangle( _
            Pens.Red, _
            e.CellBounds.Location.X + 1, _
            e.CellBounds.Location.Y + 1, _
            e.CellBounds.Width - 2, _
            e.CellBounds.Height - 2)
            g.FillRectangle( _
            Brushes.Blue, _
            e.CellBounds.Location.X + 1, _
            e.CellBounds.Location.Y + 1, _
            e.CellBounds.Width - 2, _
            e.CellBounds.Height - 2)
        End If
    End Sub
End Class
注解
TableLayoutPanel 控件将其内容排列在网格中。 由于布局是同时在设计时和运行时执行的,因此它可随应用程序环境的变化而动态地变化。 这使得面板中的控件能够按比例调整大小,以便能够响应更改(例如父控件的大小调整或本地化产生的文本长度更改)。
任何 Windows 窗体控件均可以是 TableLayoutPanel 控制的子控件,包括 TableLayoutPanel 的其他实例。 这允许你构造复杂的布局,以适应运行时的更改。
添加新控件时,TableLayoutPanel 控件可扩展以容纳新控件,具体取决于 RowCount、ColumnCount 和 GrowStyle 属性的值。 将 RowCount 或 ColumnCount 属性的值设置为 0 指定将取消 TableLayoutPanel 在相应方向的绑定。
在 TableLayoutPanel 控件充满子控件后,还可控制扩展的方向(水平或垂直)。 默认情况下,TableLayoutPanel 控件通过添加行向下扩展。
如果需要使行和列的行为不同于默认行为,可以通过使用 RowStyles 和 ColumnStyles 属性来控制行和列的属性。 可分别设置行或列的属性。
              TableLayoutPanel 控件将以下属性添加到其子控件中:Cell、Column、Row、ColumnSpan 和 RowSpan。
可以通过设置子控件上的 ColumnSpan 或 RowSpan 属性来合并 TableLayoutPanel 控件中的单元格。
注意
若要在运行时设置 Cell、Column、Row、 ColumnSpan和 RowSpan 属性,请使用 SetCellPosition、、SetColumnSetRow、 SetColumnSpan和 SetRowSpan 方法。
若要在运行时读取 Cell、Column、Row、 ColumnSpan和 RowSpan 属性,请使用 GetCellPosition、、GetColumn、 GetRowGetColumnSpan和 GetRowSpan 方法。
子控件的停靠行为与其他容器控件相同。
TableLayoutPanel 中子控件的定位行为不同于其他容器控件中的行为。 如果子控件的 Anchor 属性的值设置为 Left 或 Right,则控件将放置在单元格的左边框或右边框上,距离是控件 Margin 的 属性和面板属性的总 Padding 和。 如果同时 Left 设置了 和 Right 值,则将控件的大小调整为单元格的宽度,同时 Margin 考虑 和 Padding 值。 和 Bottom 定位的行为Top类似。 有关详细信息,请参阅如何:在 TableLayoutPanel 控件中锚定和停靠子控件。
如果需要子控件来模拟其他容器控件中的默认定位行为,可以调整 Margin 和 Padding 属性,以保持控件的边框和单元格边框之间的恒定距离。
将子控件的 Column 和 Row 属性的值都设置为 -1 将导致控件移动到控件中的 TableLayoutPanel 第一个空单元格。 将在从左到右以及从上到下进行的搜索中选择空单元格。 此顺序取决于区域性,因此它将在从右到左 (RTL) 布局中正常运行。
注意
              Visible仅将 属性设置为true参与TableLayoutPanel控件布局计算的控件。
另请参阅:
构造函数
| TableLayoutPanel() | 初始化 TableLayoutPanel 类的新实例。 | 
字段
| ScrollStateAutoScrolling | 确定 AutoScroll 属性的值。(继承自 ScrollableControl) | 
| ScrollStateFullDrag | 确定用户是否启用了全窗口拖动。(继承自 ScrollableControl) | 
| ScrollStateHScrollVisible | 确定 HScroll 属性的值是否设置为  | 
| ScrollStateUserHasScrolled | 确定用户是否滚动了 ScrollableControl 控件。(继承自 ScrollableControl) | 
| ScrollStateVScrollVisible | 确定 VScroll 属性的值是否设置为  | 
属性
| AccessibilityObject | 获取分配给该控件的 AccessibleObject。(继承自 Control) | 
| AccessibleDefaultActionDescription | 获取或设置控件的默认操作说明以供具有辅助功能的客户端应用程序使用。(继承自 Control) | 
| AccessibleDescription | 获取或设置辅助功能客户端应用程序使用的控件说明。(继承自 Control) | 
| AccessibleName | 获取或设置辅助功能客户端应用程序所使用的控件名称。(继承自 Control) | 
| AccessibleRole | 获取或设置控件的辅助性角色。(继承自 Control) | 
| AllowDrop | 获取或设置一个值,该值指示控件是否可以接受用户拖放到它上面的数据。(继承自 Control) | 
| Anchor | 获取或设置控件绑定到的容器的边缘并确定控件如何随其父级一起调整大小。(继承自 Control) | 
| AutoScroll | 获取或设置一个值,该值指示容器是否允许用户滚动到任何放置在其可见边界之外的控件。(继承自 ScrollableControl) | 
| AutoScrollMargin | 获取或设置自动滚动边距的大小。(继承自 ScrollableControl) | 
| AutoScrollMinSize | 获取或设置自动滚动的最小尺寸。(继承自 ScrollableControl) | 
| AutoScrollOffset | 获取或设置一个值,该值指示在 ScrollControlIntoView(Control) 中将控件滚动到何处。(继承自 Control) | 
| AutoScrollPosition | 获取或设置自动滚动定位的位置。(继承自 ScrollableControl) | 
| AutoSize | 获取或设置一个值,该值指示控件是否基于其内容调整大小。(继承自 Panel) | 
| AutoSizeMode | 指示控件的自动调整大小行为。(继承自 Panel) | 
| BackColor | 获取或设置控件的背景色。(继承自 Control) | 
| BackgroundImage | 获取或设置在控件中显示的背景图像。(继承自 Control) | 
| BackgroundImageLayout | 获取或设置在 ImageLayout 枚举中定义的背景图像布局。(继承自 Control) | 
| BindingContext | 获取或设置控件的 BindingContext。(继承自 Control) | 
| BorderStyle | 获取或设置面板的边框样式。 | 
| Bottom | 获取控件下边缘与其容器的工作区上边缘之间的距离(以像素为单位)。(继承自 Control) | 
| Bounds | 获取或设置控件(包括其非工作区元素)相对于其父控件的大小和位置(以像素为单位)。(继承自 Control) | 
| CanEnableIme | 获取一个用以指示是否可以将 ImeMode 属性设置为活动值的值,以启用 IME 支持。(继承自 Control) | 
| CanFocus | 获取一个值,该值指示控件是否可以接收焦点。(继承自 Control) | 
| CanRaiseEvents | 确定是否可以在控件上引发事件。(继承自 Control) | 
| CanSelect | 获取一个值,该值指示是否可以选中控件。(继承自 Control) | 
| Capture | 获取或设置一个值,该值指示控件是否已捕获鼠标。(继承自 Control) | 
| CausesValidation | 获取或设置一个值,该值指示控件是否会引起在任何需要在接收焦点时执行验证的控件上执行验证。(继承自 Control) | 
| CellBorderStyle | 获取或设置单元格边框的样式。 | 
| ClientRectangle | 获取表示控件的工作区的矩形。(继承自 Control) | 
| ClientSize | 获取或设置控件的工作区的高度和宽度。(继承自 Control) | 
| ColumnCount | 获取或设置表中允许的最大列数。 | 
| ColumnStyles | 获取 TableLayoutPanel 的列样式的集合。 | 
| CompanyName | 获取包含控件的应用程序的公司名称或创建者。(继承自 Control) | 
| Container | 获取包含 IContainer 的 Component。(继承自 Component) | 
| ContainsFocus | 获取一个值,该值指示控件或它的一个子控件当前是否有输入焦点。(继承自 Control) | 
| ContextMenu | 获取或设置与控件关联的快捷菜单。(继承自 Control) | 
| ContextMenuStrip | 获取或设置与此控件关联的 ContextMenuStrip。(继承自 Control) | 
| Controls | 获取包含在 TableLayoutPanel 内的控件的集合。 | 
| Created | 获取一个值,该值指示控件是否已经创建。(继承自 Control) | 
| CreateParams | 获取创建控件句柄时所需要的创建参数。(继承自 Panel) | 
| Cursor | 获取或设置当鼠标指针位于控件上时显示的光标。(继承自 Control) | 
| DataBindings | 为该控件获取数据绑定。(继承自 Control) | 
| DataContext | 获取或设置用于数据绑定的数据上下文。 这是一个环境属性。(继承自 Control) | 
| DefaultCursor | 获取或设置控件的默认光标。(继承自 Control) | 
| DefaultImeMode | 获取控件支持的默认输入法编辑器 (IME) 模式。(继承自 Control) | 
| DefaultMargin | 获取控件之间默认指定的间距(以像素为单位)。(继承自 Control) | 
| DefaultMaximumSize | 获取以像素为单位的长度和高度,此长度和高度被指定为控件的默认最大大小。(继承自 Control) | 
| DefaultMinimumSize | 获取以像素为单位的长度和高度,此长度和高度被指定为控件的默认最小大小。(继承自 Control) | 
| DefaultPadding | 获取 控件内容的默认内部间距(以像素为单位)。(继承自 Control) | 
| DefaultSize | 获取控件的默认大小。(继承自 Panel) | 
| DesignMode | 获取一个值,用以指示 Component 当前是否处于设计模式。(继承自 Component) | 
| DeviceDpi | 获取显示当前控件的显示设备的 DPI 值。(继承自 Control) | 
| DisplayRectangle | 获取表示控件的虚拟显示区域的矩形。(继承自 ScrollableControl) | 
| Disposing | 获取一个值,该值指示 Control 基类是否在释放进程中。(继承自 Control) | 
| Dock | 获取或设置哪些控件边框停靠到其父控件并确定控件如何随其父级一起调整大小。(继承自 Control) | 
| DockPadding | 获取控件的所有边缘的停靠边距设置。(继承自 ScrollableControl) | 
| DoubleBuffered | 获取或设置一个值,该值指示此控件是否应使用辅助缓冲区重绘其图面,以减少或避免闪烁。(继承自 Control) | 
| Enabled | 获取或设置一个值,该值指示控件是否可以对用户交互作出响应。(继承自 Control) | 
| Events | 获取附加到此 Component 的事件处理程序的列表。(继承自 Component) | 
| Focused | 获取一个值,该值指示控件是否有输入焦点。(继承自 Control) | 
| Font | 获取或设置控件显示的文字的字体。(继承自 Control) | 
| FontHeight | 获取或设置控件的字体的高度。(继承自 Control) | 
| ForeColor | 获取或设置控件的前景色。(继承自 Control) | 
| GrowStyle | 获取或设置一个值,该值指示当现有的所有单元格都被占用时,TableLayoutPanel 控件是否应该扩展以容纳新单元格。 | 
| Handle | 获取控件绑定到的窗口句柄。(继承自 Control) | 
| HasChildren | 获取一个值,该值指示控件是否包含一个或多个子控件。(继承自 Control) | 
| Height | 获取或设置控件的高度。(继承自 Control) | 
| HorizontalScroll | 获取与水平滚动条关联的特征。(继承自 ScrollableControl) | 
| HScroll | 获取或设置一个值,该值指示水平滚动条是否可见。(继承自 ScrollableControl) | 
| ImeMode | 获取或设置控件的输入法编辑器 (IME) 模式。(继承自 Control) | 
| ImeModeBase | 获取或设置控件的 IME 模式。(继承自 Control) | 
| InvokeRequired | 获取一个值,该值指示调用方在对控件进行方法调用时是否必须调用 Invoke 方法,因为调用方位于创建控件所在的线程以外的线程中。(继承自 Control) | 
| IsAccessible | 获取或设置一个值,该值指示控件对辅助功能应用程序是否可见。(继承自 Control) | 
| IsAncestorSiteInDesignMode | 指示此控件的上级之一是否位于 DesignMode 中。 此属性为只读。(继承自 Control) | 
| IsDisposed | 获取一个值,该值指示控件是否已经被释放。(继承自 Control) | 
| IsHandleCreated | 获取一个值,该值指示控件是否有与它关联的句柄。(继承自 Control) | 
| IsMirrored | 获取一个值,该值指示此控件是否为镜像控件。(继承自 Control) | 
| LayoutEngine | 获取面板的布局引擎的缓存实例。 | 
| LayoutSettings | 获取或设置一个值,该值表示表的布局设置。 | 
| Left | 获取或设置控件左边缘与其容器的工作区左边缘之间的距离(以像素为单位)。(继承自 Control) | 
| Location | 获取或设置该控件的左上角相对于其容器的左上角的坐标。(继承自 Control) | 
| Margin | 获取或设置控件之间的空间。(继承自 Control) | 
| MaximumSize | 获取或设置大小,该大小是 GetPreferredSize(Size) 可以指定的上限。(继承自 Control) | 
| MinimumSize | 获取或设置大小,该大小是 GetPreferredSize(Size) 可以指定的下限。(继承自 Control) | 
| Name | 获取或设置控件的名称。(继承自 Control) | 
| Padding | 获取或设置控件内的空白。(继承自 Control) | 
| Parent | 获取或设置控件的父容器。(继承自 Control) | 
| PreferredSize | 获取可以容纳控件的矩形区域的大小。(继承自 Control) | 
| ProductName | 获取包含控件的程序集的产品名称。(继承自 Control) | 
| ProductVersion | 获取包含控件的程序集的版本。(继承自 Control) | 
| RecreatingHandle | 获取一个值,该值指示控件当前是否在重新创建其句柄。(继承自 Control) | 
| Region | 获取或设置与控件关联的窗口区域。(继承自 Control) | 
| RenderRightToLeft | 
		已过时.
	 
		已过时.
	 此属性现已过时。(继承自 Control) | 
| ResizeRedraw | 获取或设置一个值,该值指示控件在调整大小时是否重绘自己。(继承自 Control) | 
| Right | 获取控件右边缘与其容器的工作区左边缘之间的距离(以像素为单位)。(继承自 Control) | 
| RightToLeft | 获取或设置一个值,该值指示是否将控件的元素对齐以支持使用从右向左的字体的区域设置。(继承自 Control) | 
| RowCount | 获取或设置表中允许的最大行数。 | 
| RowStyles | 获取 TableLayoutPanel 的行样式的集合。 | 
| ScaleChildren | 获取一个值,该值确定子控件的缩放。(继承自 Control) | 
| ShowFocusCues | 获取一个值,该值指示控件是否应显示聚焦框。(继承自 Control) | 
| ShowKeyboardCues | 获取一个值,该值指示用户界面是否处于适当的状态以显示或隐藏键盘快捷键。(继承自 Control) | 
| Site | 获取或设置控件的站点。(继承自 Control) | 
| Size | 获取或设置控件的高度和宽度。(继承自 Control) | 
| TabIndex | 获取或设置控件在其容器内的 Tab 键顺序。(继承自 Control) | 
| TabStop | 获取或设置一个值,该值指示用户能否使用 Tab 键将焦点放到该控件上。(继承自 Panel) | 
| Tag | 获取或设置包含有关控件的数据的对象。(继承自 Control) | 
| Text | 此成员对于此控件无意义。(继承自 Panel) | 
| Top | 获取或设置控件上边缘与其容器的工作区上边缘之间的距离(以像素为单位)。(继承自 Control) | 
| TopLevelControl | 获取没有另一个 Windows 窗体控件作为其父级的父控件。 通常,这是控件所在的最外面的 Form。(继承自 Control) | 
| UseWaitCursor | 获取或设置一个值,该值指示是否将等待光标用于当前控件以及所有子控件。(继承自 Control) | 
| VerticalScroll | 获取与垂直滚动条相关联的特性。(继承自 ScrollableControl) | 
| Visible | 获取或设置一个值,该值指示是否显示该控件及其所有子控件。(继承自 Control) | 
| VScroll | 获取或设置一个值,该值指示垂直滚动条是否可见。(继承自 ScrollableControl) | 
| Width | 获取或设置控件的宽度。(继承自 Control) | 
| WindowTarget | 此属性与此类无关。(继承自 Control) | 
方法
事件
显式接口实现
| IDropTarget.OnDragDrop(DragEventArgs) | 引发 DragDrop 事件。(继承自 Control) | 
| IDropTarget.OnDragEnter(DragEventArgs) | 引发 DragEnter 事件。(继承自 Control) | 
| IDropTarget.OnDragLeave(EventArgs) | 引发 DragLeave 事件。(继承自 Control) | 
| IDropTarget.OnDragOver(DragEventArgs) | 引发 DragOver 事件。(继承自 Control) | 
| IExtenderProvider.CanExtend(Object) | 有关此成员的说明,请参见 CanExtend(Object)。 |