填充隐藏控件留下的空白区域

时间:2013-03-14 14:09:46

标签: c# winforms

这个问题有点微不足道,但我似乎无法找到任何标准解决方案。

我有一个表单,根据用户权限我显示或隐藏按钮+文本框。现在发生的是:

Can see it

这是用户有权查看/使用此功能的情况。当他没有:

Don't see

它不可见 - 这是一个简单的部分,但从我发现的情况来看,只有FlowLayoutPanel提供了自动功能来隐藏这个空白区域而我的情况并非如此。

4 个答案:

答案 0 :(得分:3)

为标签和文本框设置Dock属性为Top。这样,当按钮和文本框消失时,布局系统将自动向上移动它们。

答案 1 :(得分:0)

这取决于这是您问题的简化版本。如果它只是您描述的内容,那么无论何时检查权限/隐藏相关控件,您都可以使用其Top属性重新定位其他控件。

答案 2 :(得分:0)

将控件包装在div中,并防止它们浮动。 float:none。然后,通过将div显示设置为无div

,将display:none及其内容隐藏在内部

答案 3 :(得分:0)

非常简单,只需将控件的位置更改为隐藏控件的位置 并在不隐藏隐藏控件的情况下将其重新放置到原始位置。

btn.location=new point(x,y)

其中 x y 是在winforms中显示的隐藏控件的坐标。