【问题标题】:Automatic Sizing Of TableLayoutPanelTableLayoutPanel 的自动调整大小
【发布时间】:2014-04-02 19:22:15
【问题描述】:

我在FlowLayoutPanel 中有一个TableLayoutPanel,这样我就可以在表格周围有一个3D 边框,但可以根据需要定义表格中控件的位置。我想让TableLayoutPanel 填充FlowLayoutPanel,但是当我使用停靠属性时,TLP 似乎聚集在 FLP 的顶部。

如何让 TLP 停靠,以便在调整表单大小时调整其大小?

【问题讨论】:

  • 不要使用 FlowLayoutPanel。只是一个面板。
  • 或者不允许更改表单的大小。
  • 不幸的是,一些用户使用 800 x 600 分辨率,而其他用户的设置更合理,所以调整大小是我坚持的事情

标签: vb.net winforms tablelayoutpanel flowlayoutpanel


【解决方案1】:

我通常发现对接麻烦多于其价值。在大多数情况下,锚定似乎对我来说效果更好。尝试禁用停靠,然后调整控件的大小,使其以您想要的方式填充面板,然后将其设置为锚定在左侧、右侧、顶部和底部。

另外,正如其他人所提到的,尝试使用普通面板而不是 FlowLayoutPanel。特定的布局面板中包含特殊代码,用于处理可能会干扰其他调整大小逻辑的子元素大小调整。

附录

停靠总是紧贴容器的一侧,并迫使另一轴上的 2 个侧面也紧贴边缘。锚定允许您设置特定位置,然后将控件的一侧绑定到其父级,以便调整父级的大小使控件的该侧与父级保持相同的距离。 99% 的时间,根据我的经验,锚定可以完成对接所做的一切,甚至更多,而挫败感要少得多。我认为 Splitterbars 是少数需要对接的情况之一,但即便如此,它也可以使用分离器面板进行模拟。 ToolStrips 和菜单之类的东西是我能想到的最好的停靠用例。

【讨论】:

  • 使用简单的面板让一切都卡入到位。我对停靠和锚定之间的区别仍然有些模糊 - 我倾向于同意你关于使用锚定的观点,除非有理由不这样做。你知道什么时候有理由不这样做吗?
  • 添加了有关何时使用停靠与锚定的其他信息,因为它太长而无法放入评论中。
  • 感谢您提供的附录,这正是我的想法,但听到您这么说就不会那么混乱了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多