确定 Table 布局面板控件的单元格包含在

Determine the Cell of a Table Layout Panel Controls are Contained in

我正在 VB.Net 进行一个项目,我正在使用 Table 布局面板允许多个 windows 并排打开。

我现在要处理的问题是弄清楚 Table 布局面板组件在 运行 时被放置在哪一列。

例如,假设我有两个 Windows 打开,有 3 列。所以第 1 列和第 2 列中有控件,第 3 列为空。如果我关闭第 1 列中的 Window,我想检测它所在的列,以便我可以将第 2 列中的 Window 移到第 1 列。我正在尝试这样做我可以根据并排打开的 windows 的数量来调整 windows 的大小。

但是我似乎无法找到一种方法来准确确定 Column 是 'parent' Column。父容器是 Table Layout Panel 本身,但我不知道如何获取我要查找的信息。

您可以确定子控件在 TableLayoutPanel using its GetPositionFromControl() method, which will return a TableLayoutPanelCellPosition 结构中的位置,识别控件占用的单元格的 ColumnRow

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

PositionPosition.ColumnPosition.Row 报告为整数值。

也可以通过GetControlFromPosition()方法判断哪个子控件占用了指定位置:

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