2012-04-26 5 views
5

응용 프로그램의 양식 팀 구성에서 datagridview를 주 구성 요소로 사용하고 있지만 다른 구성 요소가 있습니다. 그것들을 나눌 수있는 수평 splitcontainer가 있지만 그 내용에 맞게 상단 패널을 조정하는 방법을 궁금해하고 있습니다. image1 http://www.mediafire.com/conv/8d141b69c63b0d3ac8aebf9129bb77e25ee4a75086cfa6595c4510041fda1fa66g.jpg image2 http://www.mediafire.com/conv/56d959d2a9f99b71af16f7ab3eb5833874e8583f7b15bd1df16aafaa7313a7066g.jpgSplitcontainer flowlayoutpanel 또는 자동 크기 조정 된 패널 (VB.NET)

당신이 볼 수 있듯이, SplitContainer가의 상단 패널 : 불행하게도 SplitContainer가있는 패널이 AutoSize 재산이없는 ...

여기에 우리가 필요로하는 것을 보여 두 이미지는 내용의 크기에 맞게 조정해야합니다. 이것을 달성 할 수있는 방법이 있습니까?

답변

3

나는 당신이 당신의 이미지에 기초한 "수평"분리 컨테이너를 의미한다고 가정하고 있습니다.

당신은 상단 패널의 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에 배치하고 자신의 추가 할 수 이상의 패널에 버튼을 추가 패널입니다.

+0

작동하지만 자동으로 수행 할 것으로 기대하고 있습니다. 상단 패널에는 실제로 하나의 컨트롤 인 usercontrol 만 있습니다. 그 컨트롤에는 flowlayout 패널이 있고, splitconttainer 상단 패널이 사용자 컨트롤의 flowlayout 패널의 크기로 크기를 조정하는 것이 좋았을 것입니다. 어쨌든 답장을 보내 주셔서 감사합니다. – MarioDS

+0

@MarioDeSchaepmeester FLP가 UC에 있다면, 분명히 UC가 이미 크기 조정을해야 할 필요가 있습니다. 그냥 'SplitterDistance'를 설정하기 위해 UC의 크기 조정 이벤트에 연결하십시오. – LarsTech

+0

아 맞습니다. 감사 드리겠습니다. – MarioDS