2016-11-01 48 views
-1

我有一个WinForms面板,它包含两个项目,例如。标签。在WinForms面板中对齐不同的标签控件

我需要水平不同地对齐它们,假设Label1需要与面板的中心对齐,并且Label2需要与面板的右侧对齐。调整必须在调整大小时保留。

我应该使用哪个面板?面板? FlowLayoutPanel的?还要别的吗? 如何设置面板/标签的属性来实现上述安排?

+1

调整大小之前共享图像和调整大小之后共享图像会更好,那么要求会更加清晰。也许这只是一些使用'Anchor'的属性设置,也许你需要一些事件处理代码。 –

+0

标签可以自己做到,而不需要面板的帮助。使用它的Anchor属性。使用Top + Right让它保持在右边。中心是更多的工作:使用AutoSize = False,TextAlign = TopCenter,将标签放置在中心,Anchor = Left + Top + Right。 –

+0

@Hans Passant:它几乎可以满足我的需求。只有调整大小意味着增加宽度,您的指示“将标签放置在中间位置”就足够了。对于减少宽度的工作解决方案“标签在中心”需要被替换为“将标签的宽度拉伸到封闭面板的边缘(并且是的,通过标签2来拉伸右侧)”。在后一种情况下,还必须关心z命令以避免隐藏label2。 – Feri

回答

0

使用TabelLayoutPanel两栏。将左侧标签锚设置为顶部和底部,并标记文本对齐中心。 标签2定位右,文本右中。

使TabelLayoutPanel要么填充(如果它是窗体上的唯一控件)或将锚设置到您想要展开的两侧。

标签的进一步对齐可以通过它在父容器中的锚位置和文本对齐来控制。

+0

编辑:谢谢,但据我所知,这将使Label1与TableLayoutPanel的第1列的中心对齐,而不是整个TableLayoutPanel的整个宽度的中心。 – Feri