代码之家  ›  专栏  ›  技术社区  ›  echo

WinForms用户控件布局自动调整大小问题

  •  1
  • echo  · 技术社区  · 16 年前

    不久前,我发布了 this question 关于尝试使flowlayoutpanel在停靠到容器顶部时正确自动调整大小。我试图完成的是设置一个横跨表单顶部边缘的水平(从左到右)flowlayoutpanel,以及一个datagridview,它占据了flowlayoutpanel下面剩余的可用空间。我很难让flowlayoutpanel的height属性自动调整大小。贴出的答案对我想要完成的工作非常有效,非常好。。。

    这是第一个布局,效果很好:

    FlowLayoutPanel1 (Autosize = true, Dock = Top)
      ComboBox1
      ComboBox2
      ComboBox3
    DataGridView1 (Dock = Fill)
    

    这是一个用户控件包装的flowlayoutpanel:

    UserControl (Autosize = true, Dock = Top)
      FlowLayoutPanel1 (Autosizse = true, Dock = Fill)
        ComboBox1
        ComboBox2
        ComboBox3
    DataGridView1 (Dock = Fill)
    

    2 回复  |  直到 9 年前
        1
  •  3
  •   Lenny Sirivong    16 年前

    FlowLayoutPanel1.Dock = Fill 它会覆盖自动调整其高度的尝试。

    解决办法很可能是设置 FlowLayoutPanel1.Dock = Top FlowLayoutPanel1.Resize 事件来调整用户控件的大小。本质上,您是在手动尝试保持 UserControl.Size 与 FlowLayoutPanel1.Size

    有一个更聪明的方法可以做到这一点,但希望它能让你走上正确的道路。。。

        2
  •  0
  •   Rob Fonseca-Ensor    16 年前