用于控制的 Dock 样式

Posted

技术标签:

【中文标题】用于控制的 Dock 样式【英文标题】:Dock Style for control 【发布时间】:2015-09-10 08:16:22 【问题描述】:

我有一个用户控件,其中包含顶部的 2 个按钮和下方的网格。让我将其命名为 UC1

这个 UC1 被放置在另一个用户控件 UC2 中。

在 UC2 的某些情况下,我不需要 UC1 上的 2 个按钮,因此我将这 2 个按钮设置为可见 false 并将网格的停靠样式设置为 Fill。

grid.Dock = DockStyle.Fill;

但在某些情况下,我需要 UC1 上的这 2 个按钮,我将 2 个按钮设为可见,然后将网格的停靠样式设置为无

grid.Dock = DockStyle.None;

将DockStyle设置为none后,网格的宽度变小了,不适合UC2的宽度。

如果我不使用 DockStyle.None,则网格和按钮会重叠。

如何解决 UC1 中网格的宽度以适应 UC2 的宽度?

【问题讨论】:

试试grid.Dock = DockStyle.Bottom 我试过 DockStyle.Bottom 并且网格适合 UC2 控件的底部。这会导致按钮和网格之间出现巨大的空白。所以我不能用这个解决方案 【参考方案1】:

您应该首先在 CU1 上放置一个 TableLayoutPanel,将其设置为 Fill。

然后在此表中,为包含两个按钮的面板创建一行,并为包含 CU2 的第二行创建第二行。然后可以将额外面板和 CU2 全部设置为填充。

要显示或隐藏按钮,只需将面板行的行高设置为适当的值或零。

【讨论】:

感谢您的建议,但 UC1 设计不应被触及,因为它已在大多数屏幕中使用。还有其他解决方案吗?

以上是关于用于控制的 Dock 样式的主要内容,如果未能解决你的问题,请参考以下文章

iOS_20_微博Dock的尾随切换

苹果Dock样式的菜单

MPMoviePlayer 控制样式条框高度

自己添加的广告CSS样式是哪个文件控制的

总结这周学习的css的知识

第22天:js改变样式效果