【问题标题】:Splitcontainer flowlayoutpanel or autosized panel (VB.NET)Splitcontainer flowlayoutpanel 或 autosized 面板 (VB.NET)
【发布时间】:2023-03-09 16:06:01
【问题描述】:

我正在与一个团队合作的应用程序中的表单有一个 datagridview 作为主要组件(它应该占据大部分大小),但还有其他组件。有一个水平拆分容器来拆分它们,但我想知道如何使顶部面板调整其内容的大小。不幸的是,拆分容器中的面板没有AutoSize 属性...

这里有两张图片来展示我们需要什么:
(来源:mediafire.com


(来源:mediafire.com

如您所见,splitcontainer 的顶部面板应根据其内容的大小进行调整。有什么方法可以实现吗?

【问题讨论】:

    标签: vb.net autosize flowlayoutpanel splitcontainer


    【解决方案1】:

    我假设您的意思是基于您的图像的“水平”拆分容器。

    您可以尝试使用顶部面板的ControlAdded 事件手动实现此目的:

    Public Class Form1
    
      Public Sub New()
        InitializeComponent()
      End Sub
    
      Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
        SplitContainer1.SplitterDistance = SmallPanel.Height
      End Sub
    
      Private Sub SplitContainer1_Panel1_ControlAdded(ByVal sender As Object, ByVal e As ControlEventArgs) Handles SplitContainer1.Panel1.ControlAdded
        SplitContainer1.SplitterDistance += e.Control.Height
      End Sub
    
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim addPanel As New Panel
        addPanel.BorderStyle = BorderStyle.FixedSingle
        addPanel.Size = New Size(SplitContainer1.Panel1.ClientSize.Width, 100)
        addPanel.Location = New Point(0, SplitContainer1.SplitterDistance)
        addPanel.Anchor = AnchorStyles.Left Or AnchorStyles.Top Or AnchorStyles.Right
        SplitContainer1.Panel1.Controls.Add(addPanel)
      End Sub
    
    End Class
    

    SmallPanel 是我放置在 SplitContainer 的 Panel1 中的一个面板,并在其中添加了一个按钮以添加更多面板。

    【讨论】:

    • 这会起作用,但我希望有一些东西可以自动完成。上面的面板中实际上只有一个控件,一个用户控件。该控件中有一个流程布局面板,我希望拆分容器顶部面板将其大小调整为用户控件中流程布局面板的大小......无论如何感谢您的回答。
    • @MarioDeSchaepmeester 如果 FLP 在 UC 中,那么您显然需要让 UC 自行调整大小(听起来就是这样)。只需钩入 UC 的 resize 事件即可设置 SplitterDistance
    猜你喜欢
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多