【问题标题】:setting anchor for "controls in a panel" inside a "flowlayoutpanel"在“flowlayoutpanel”中为“面板中的控件”设置锚点
【发布时间】:2011-08-04 14:36:46
【问题描述】:

在我的 Windows 应用程序中

我在 flowlayoutpanel 中有一个普通面板

在这个普通面板中,我有一些输入控件(例如标签、文本框...)

我已经设置了锚属性,认为当我调整窗口大小时它会自动调整大小。

但是当我测试它时,只有 flowlayoutpanel 会自动调整大小,因为我可以看到滚动条向右移动得更远......普通面板中的控件根本没有移动。

有人知道这里有什么问题吗?

谢谢!

【问题讨论】:

    标签: .net vb.net panel windows flowlayoutpanel


    【解决方案1】:

    我也遇到了同样的问题。显然,FlowLayoutPanel 中的控件是根据此面板中最宽的控件调整大小的。我通过覆盖 FlowLayoutPanel 上的“调整大小”事件并更改相对于 FlowLayoutPanel 大小的控件之一解决了这个问题:

    private void RulesPanel_Resize(object sender, EventArgs e)
    {
        FlowLayoutPanel panel = (FlowLayoutPanel)sender;
        button_in_panel.Width = panel.Width - 50;
    }
    

    一旦设置了一个,其他的就会正确调整大小。对于那些指定了锚点的人来说也是如此。

    【讨论】:

      【解决方案2】:

      在下面的帖子中,Lenny 已经回答了这个问题

      cannnot-resize-child-controls-in-a-flowlayoutpanel-control

      或者这个:

      flowlayoutpanel-issues

      所以我认为没有办法。 您需要该控件的确切用途是什么?

      【讨论】:

      • 我正在制作一个具有顶部(面板 A)和底部(面板 B)的表单...用户可以折叠面板 A,因此我将这两个面板放置在流程布局面板中。当我将面板 A 设置为关闭时,面板 B 将自动向上移动以填充空间...希望有人可以建议我为这种情况提供替代方案,谢谢!
      • 我的建议是删除这个控件。并添加一个像 VisibleChanged() 这样的函数在那里你可以检查面板是否可见并设置你的 B 面板的位置。
        现在你可以在折叠函数中调用 VisibleChanged()
      猜你喜欢
      • 2017-08-07
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多