WinForms - 在TableLayoutPanel中重叠两个控件

时间:2016-07-26 12:54:23

标签: c# winforms visual-studio visual-studio-2015 windows-forms-designer

我有一个TableLayoutPanel包含5行和5列可变大小(3x3网格,两侧有填充单元格)。在每个内部单元格中,我在PictureBox上设置了Dock Fill参数集。我现在想要添加Label,覆盖整个9个单元格。由于Label是透明的而且并非始终可见,因此应该没有问题。

但是当我尝试移动Label中的TableLayoutPanel时,它所做的就是“压缩”底部或右侧的PictureBoxes

这是一组前/后照片:

Before

After (白色文本是程序的一部分,而不是标题)

我尝试修改标签的RowSpanColumnSpan属性,但无济于事。截至目前,Dock的{​​{1}}属性设置在PictureBoxes上,Fill也是如此。将其设置为Label只会使其变小,但会将None堆叠在底部。

我也尝试修改PictureBoxes,但也没有运气。

我如何实现我的目标?

1 个答案:

答案 0 :(得分:2)

正如Sinatr所指出的那样,解决方案是创建一个像Panel这样的容器,并使其包含重叠控件(此处为PictureBoxTableLayoutPanel包含9个其他PictureBoxes),因为TableLayoutPanel每个单元格只能包含一个元素。

文档的结构必须如下所示:

Form
↳ Panel
  ↳ PictureBox        # The big one
  ↳ TableLayoutPanel
    ↳ PictureBox      # The 9 small ones
      ...
    ↳ PictureBox