首页 > 解决方案 > 确定表格布局面板控件的单元格包含在

问题描述

我正在 VB.Net 中处理一个项目,并且正在使用表格布局面板来允许多个窗口并排打开。

我现在正在处理的问题是在运行时准确地确定表格布局面板组件的哪一列。

例如,假设我打开了两个窗口,有 3 个列。所以第 1 列和第 2 列中有控件,第 3 列是空的。如果我关闭第 1 列中的窗口,我想检测它所在的列,以便我可以将第 2 列中的窗口移动到第 1 列。我正在尝试这样做,以便我可以根据如何调整窗口大小许多窗户被并排打开。

但是我似乎无法找到一种方法来准确确定 Column 是“父”列。父容器是表格布局面板本身,但我不知道如何获取我要查找的信息。

标签: vb.netwinformstablelayoutpanel

解决方案


您可以使用TableLayoutPanel中的GetPositionFromControl()方法确定子控件的位置,该方法将返回一个TableLayoutPanelCellPosition结构,标识控件所占用的单元格的Column和:Row

Dim Position As TableLayoutPanelCellPosition = 
                TableLayoutPanel1.GetPositionFromControl([ControlName]) 

Position报告Position.ColumnPosition.Row整数值。

您还可以使用GetControlFromPosition()方法确定哪个子控件占据指定位置:

Dim MyControl As Control = TableLayoutPanel1.GetControlFromPosition(0, 0)

推荐阅读