C# 更改 FlowLayoutPanel 内控件的位置

发布于 2024-10-17 23:33:26 字数 396 浏览 3 评论 0原文

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

I am using flowLayoutPanel to have relative location controls.
I would like to change the location of control inside the flowLayoutPanel.
when I say location, I dont mean control1 before control2 or something like that - I mean that if I got 2 controls, lets say label and comboBox - the comboBox's height is 21, the label's height is 13 and the flowLayoutPanel's height is 21 also. I want to put the label in the vertical middle of the flowLayoutPanel - ((21-13)/2) from top. I dont want something specific for vertical middle I want general solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

囍孤女 2024-10-24 23:33:26

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

You could also set the top margin of the label to (containerHeight-labelHeight)/2

不即不离 2024-10-24 23:33:26

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

The flow layout is not going to help: it just arranges all controls in a list, adjusting their position to fit in the panel. You can create subgroups by putting controls in a table within the flow layout, or just use a table for maximum control.

离线来电— 2024-10-24 23:33:26
    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);
    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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文