隐藏控件而不留空白

时间:2018-10-07 16:35:48

标签: winforms layout user-controls devexpress

我有一个很大程度上基于DevExpress Windows Forms套件的WinForms项目。我正在处理如下所示的控件:

Image of control question is about

我使用术语程序来区分针对人的培训程序,不同于程序,即计算机程序。在该图像中,有3个ProgrammeGroup用户控件。每个标题都有一个标题,带有2个组合,在其下方是一个ProgrammeDetail用户控件,其中包含程序详细信息。

当左上方的组合显示值为空白时,程序详细信息必须可见,否则不可见。使ProgrammeDetail控件不可见时,我还将其Height设置为零,并且外部ProgrammeGroup控件在自动调整大小时缩小。

但是,如果我将中间ProgrammeGroup上的“是/否”组合设置为ProgrammeGroup会缩小,但在标头(仅中间控件)和底部控件之间留有空隙。下图可见该间隙:

enter image description here

我该如何放置ProgrammeGroup控件,以便如果一个控件的高度缩小,则其下方的所有控件都将向上移动,这意味着没有空白。我希望DevExpress WinForms套件中的许多不同面板之一可以帮助我做到这一点,但是我很沮丧地找到了一个面板。

2 个答案:

答案 0 :(得分:1)

解决此问题的方法是使用FlowLayoutPanel,它可以自动将其中的控件彼此对齐。

答案 1 :(得分:0)

调整子控件的大小和位置的最佳方法是将它们放置在LayoutControl上。该控件是专门为此类任务设计的。要隐藏不必要的布局项目/组,请使用BaseLayoutItem.Visibility属性。

我还应该注意LayoutControl是灵活的,并且支持包括Flow Layout Mode在内的不同模式。

另请参阅:

Customization Form