C#更改FlowLayoutPanel内控件的位置

时间:2011-02-17 22:59:23

标签: c# winforms tablelayoutpanel flowlayoutpanel

我使用flowLayoutPanel来进行相对位置控制。 我想在flowLayoutPanel内更改控件的位置。 当我说位置时,我不是指在control2之前的control1或类似的东西 - 我的意思是如果我有2个控件,让我们说labelcomboBox - comboBox的高度为21 ,label的高度为13,flowLayoutPanel的高度也为21。我想将label放在flowLayoutPanel - ((21-13)/ 2)的垂直中间位置。我不想要特定于垂直中间的东西,我想要一般的解决方案。

3 个答案:

答案 0 :(得分:4)

您还可以将标签的上边距设置为(containerHeight-labelHeight)/ 2

答案 1 :(得分:2)

流程布局无济于事:它只是将所有控件排列在一个列表中,调整它们的位置以适应面板。您可以通过将控件放在流布局中的表中来创建子组,或者只使用表来进行最大程度的控制。

答案 2 :(得分:0)

    int cIndex = this.FlowLayoutPanel1.Controls.GetChildIndex(Button1);
    int bIndex = this.FlowLayoutPanel1.Controls.GetChildIndex(Button1);

    this.FlowLayoutPanel1.Controls.SetChildIndex(Button1, bIndex);
    this.FlowLayoutPanel1.Controls.SetChildIndex(Button2, cIndex);