我有一个 TableLayoutPanel
,其中包含 5 行和 5 列,大小可变(一个 3x3 网格,两侧有填充单元格)。在每个内部单元格中,我放置了一个 PictureBox
,其中 Dock
参数设置为 Fill
。我现在想添加一个 Label
来覆盖这 9 个单元格。由于 Label
是透明的并且并不总是可见的,因此应该没有问题。
但是当我尝试在 TableLayoutPanel
中移动 Label
时,它所做的只是“压缩”底部或上方的 PictureBoxes
权利。
这是一组之前/之后的图片:
我曾尝试修改标签的 RowSpan
和 ColumnSpan
属性,但无济于事。目前,PictureBoxes
的Dock
属性设置在Fill
上,Label
也是如此。将其设置为 None
只会使其变小,但会将 PictureBoxes
留在底部。
我也曾尝试修改 TabIndexes
,但也没有成功。
我怎样才能实现我想要的?
最佳答案
解决方案,如Sinatr指出的是,创建一个类似 Panel
的容器,并使其包含两个重叠控件(此处为 PictureBox
和 TableLayoutPanel
,其中包含 9其他 PictureBoxes
),因为 TableLayoutPanel
每个单元格只能包含一个元素。
文档的结构必须如下所示:
Form
↳ Panel
↳ PictureBox # The big one
↳ TableLayoutPanel
↳ PictureBox # The 9 small ones
...
↳ PictureBox
关于c# - WinForms - 在 TableLayoutPanel 中重叠两个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38590478/