c# - WinForms - 在 TableLayoutPanel 中重叠两个控件

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

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

但是当我尝试在 TableLayoutPanel 中移动 Label 时,它所做的只是“压缩”底部或上方的 PictureBoxes权利。

这是一组之前/之后的图片:

Before

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

我曾尝试修改标签的 RowSpanColumnSpan 属性,但无济于事。目前,PictureBoxesDock 属性设置在Fill 上,Label 也是如此。将其设置为 None 只会使其变小,但会将 PictureBoxes 留在底部。

我也曾尝试修改 TabIndexes,但也没有成功。

我怎样才能实现我想要的?

最佳答案

解决方案,如Sinatr指出的是,创建一个类似 Panel 的容器,并使其包含两个重叠控件(此处为 PictureBoxTableLayoutPanel,其中包含 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/

相关文章:

c# - 在内容页 ASP.NET 中使用时,Javascript 不返回正确的值

c# - 我可以为 C# Windows 应用程序拖放功能选择自定义图像吗?

c# - 图像数据绑定(bind)到 pictureBox

c++ - visual studio 2013如何链接opencv等dll文件输出exe

git - 如何将 Git 添加到 MSBuild 脚本?

c# - unattend.xml 架构的位置

c# - 如何在 viewmodel 方法中更新 busyIndi​​cator 状态?

C#.net WinForms 如何在文本框处于焦点时使文本框中的文本消失?

visual-studio - 代理服务器后面的 Visual Studio 更新

c# - 一个单元应该如何测试 .NET MVC Controller ?