【问题标题】:C# change location of controls inside FlowLayoutPanelC# 更改 FlowLayoutPanel 内控件的位置
【发布时间】:2015-02-18 19:31:25
【问题描述】:

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

【问题讨论】:

    标签: c# winforms tablelayoutpanel flowlayoutpanel


    【解决方案1】:

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

    【讨论】:

    • 工作就像一个魅力,我忘记了 margin 属性。
    • 男人是谁?你这个男人!这很好用。对于使用此功能的其他任何人,必须将边距复制到变量中,修改然后设置回来。
    【解决方案2】:

    流布局不会有帮助:它只是将所有控件排列在一个列表中,调整它们的位置以适应面板。您可以通过将控件放在流布局内的表格中来创建子组,或者只使用表格来实现最大控制。

    【讨论】:

    • 如何在tableLayoutPanel中设置控件的位置?我也不能在 tableLayoutPanel 里面做..
    • 我确实喜欢使用 TableLayoutPanel 的想法 - 您可以通过设置列/行的尺寸来设置控件位置甚至尺寸。对于一个完整的 GUI,它比将所有内容都放入 FlowLayoutPanel 需要更多的计划,但我认为回报是值得的。
    • 正确 - 您可以随时将控件停靠在每个单元格中。
    【解决方案3】:
        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);
    

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 2014-10-03
      • 1970-01-01
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多