为什么我的GUI不显示3个单独的面板?

时间:2014-06-14 20:15:23

标签: .net powershell border panel

我基本上试图在powershell中编写一个小GUI,它有三个带边框的独立面板,用于指示一个面板的开始和结束位置。但是,看起来这些面板只是直接在彼此之上构建。

非常感谢您对此的任何帮助!

$form = New-Object System.Windows.Forms.Form
$form.Height = 350
$form.Width = 600

function buildMainPanel {

   $panel = New-Object System.Windows.Forms.Panel
   $Script:tableLayoutPanel = New-Object System.Windows.Forms.TableLayoutPanel
   $tableLayoutPanel.RowCount = 3

   $pan1 = buildEmptyPanel
   $pan2 = buildEmptyPanel
   $pan3 = buildEmptyPanel

   $tableLayoutPanel.Controls.Add($pan1)
   $tableLayoutPanel.Controls.Add($pan2)
   $tableLayoutPanel.Controls.Add($pan3)

   $panel.Controls.Add($tableLayoutPanel)

   return $panel
}

function buildEmptyPanel {

   $panel = New-Object System.Windows.Forms.Panel
   $panel.BorderStyle = [System.Windows.Forms.BorderStyle]::FixedSingle

   return $panel
}

$mainPanel = buildMainPanel

$form.Controls.Add($mainPanel)
$form.ShowDialog()

1 个答案:

答案 0 :(得分:2)

在WPF中,WinForms中的自动布局方式并不多。在WinForms中,您可以进行锚定和对接。您可以尝试对接试验,看看是否可行。如果不是,您必须自己管理面板的位置和大小。

$pan1.Dock = 'Left'
$pan2.Dock = 'Fill'
$pan3.Dock = 'Right'