1

스크린 샷과 같이 두 개의 패널을 서로 나란히 정렬했습니다. 각 패널은 3-4 개의 컨트롤로 구성됩니다. 내가 달성하기 위해 노력하고 무엇Visual Basic 2013 (.net)에서 가로로 정렬 된 패널의 크기를 자동으로 조정하는 방법

Screenshot of Panels alignment

입니다 - 때 폼 크기 변경, 2 개 개의 패널 사이하여 일정 간격을 유지 자동으로 조정해야한다 패널의 크기입니다.

지금까지 두 패널의 다양한 앵커 조합을 시도했지만 원하는 결과를 얻을 수 없었습니다. 나는 여기에서 꼼짝 못한다. (Visual Basic 2013에서 작업 중)

+1

을위한 작업처럼 소리 [TableLayoutPanel] (http://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel (v = vs.110) .aspx). –

+0

@ Bjørn-RogerKringsjå 먼저 TableLayoutPanel 만 사용해 보았습니다. 그러나 일부 알 수없는 이유로 단일 셀에 여러 컨트롤을 삽입 할 수 없었습니다. –

+0

@ Bjørn-RogerKringsjå, 언급 한 후에 다시 시도했는데 하나의 셀에 여러 컨트롤을 삽입 할 수 없음을 확인할 수 있습니다. 그러나 ** 나는 원래의 질문의 스크린 샷에서 볼 수 있듯이 패널에 컨트롤을 유지 한 다음 TableLayoutPanel의 셀에 모든 패널을 유지하여 원하는 결과를 얻었습니다 **. 하지만, ** 이것이 실제 해결책인지 또는 어떤 단점이 있는지 나는 모른다. ** ** ** ** ** ** 제가 이걸 진행해야한다고 말해 주시겠습니까? 아이디어 주셔서 감사합니다 :) –

답변

1
  • 드래그 & 드롭은 폼에 TableLayoutPanelFillDock 스타일을 설정합니다.
  • 마지막 행을 제거하고 새 열을 추가하십시오.
  • 첫 번째 열과 세 번째 열의 열 스타일/너비를 percent50%으로 설정하십시오.
  • 두 번째 열의 열 스타일/너비를 absolute20으로 설정하십시오.
  • & 패널을 첫 번째 및 세 번째 셀로 끌어서 Dock 스타일을 Fill으로 설정하십시오.
  • 필요한 두 가지 컨트롤을이 두 패널 안에 배치하십시오. 또한

, 난 당신이 읽을 제언 SO TLP 렌더링을 개선하는 방법에 게시 한 다음

샘플 양식 :

Public Class Form1 

    Public Sub New() 
     Me.InitializeComponent() 
    End Sub 

    Private Sub InitializeComponent() 
     Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() 
     Me.Panel1 = New System.Windows.Forms.Panel() 
     Me.Panel2 = New System.Windows.Forms.Panel() 
     Me.TableLayoutPanel1.SuspendLayout() 
     Me.SuspendLayout() 
     ' 
     'TableLayoutPanel1 
     ' 
     Me.TableLayoutPanel1.ColumnCount = 3 
     Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) 
     Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) 
     Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) 
     Me.TableLayoutPanel1.Controls.Add(Me.Panel1, 0, 0) 
     Me.TableLayoutPanel1.Controls.Add(Me.Panel2, 2, 0) 
     Me.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill 
     Me.TableLayoutPanel1.Location = New System.Drawing.Point(0, 0) 
     Me.TableLayoutPanel1.Name = "TableLayoutPanel1" 
     Me.TableLayoutPanel1.RowCount = 1 
     Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) 
     Me.TableLayoutPanel1.Size = New System.Drawing.Size(682, 260) 
     Me.TableLayoutPanel1.TabIndex = 1 
     ' 
     'Panel1 
     ' 
     Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle 
     Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill 
     Me.Panel1.Location = New System.Drawing.Point(3, 3) 
     Me.Panel1.Name = "Panel1" 
     Me.Panel1.Size = New System.Drawing.Size(325, 254) 
     Me.Panel1.TabIndex = 0 
     ' 
     'Panel2 
     ' 
     Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle 
     Me.Panel2.Dock = System.Windows.Forms.DockStyle.Fill 
     Me.Panel2.Location = New System.Drawing.Point(354, 3) 
     Me.Panel2.Name = "Panel2" 
     Me.Panel2.Size = New System.Drawing.Size(325, 254) 
     Me.Panel2.TabIndex = 1 
     ' 
     'Form1 
     ' 
     Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 16.0!) 
     Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font 
     Me.ClientSize = New System.Drawing.Size(682, 260) 
     Me.Controls.Add(Me.TableLayoutPanel1) 
     Me.Name = "Form1" 
     Me.Text = "Form1" 
     Me.TableLayoutPanel1.ResumeLayout(False) 
     Me.ResumeLayout(False) 

    End Sub 

    Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel 
    Friend WithEvents Panel1 As System.Windows.Forms.Panel 
    Friend WithEvents Panel2 As System.Windows.Forms.Panel 

End Class 
+0

나의 질문에 대한 나의 마지막 코멘트에서 말하려고했던 뛰어난, 똑같은 것. 그러나 귀하의 대표가 가장 좋습니다. –

+1

@ Dr.AtulTiwari 위대한! 또한 내 편집에 추가 된 링크를 방문해야합니다. –

+0

링크를 살펴 보았지만 시각적 기본으로 변환 할 수 없었습니다. 나는 C#을 모른다. 온라인 변환기를 사용해 보았지만 모두 오류가 많은 코드를 반환했습니다. 해결할 수 없었습니다. tablelayoutpanel을 늦추지 않는 방법을 도와 줄 수 있습니까? 감사. –

-1

왼쪽 패널의 독을 오른쪽에서 오른쪽으로 설정하면됩니다.

+0

** ** "두 패널 사이의 일정 간격"*을 확장하거나 유지하지 않습니다 **. –

+0

@ Bjørn-RogerKringsjå, 맞습니다. 도킹도 시도했지만 도킹은 당신이 언급 한 것과 같은 문제를 일으켰습니다. –

관련 문제