2017-03-10 26 views
0

ドッキングされたフォームとパネルを使用するPowerShellスクリプトを作成しています。私はちょうど罰金フォームやパネルを作成することができましたが、私はサイズを制御する$inputbox.Bottom = $form.Height - 215を使用して実行時にサイズを変更するには、リストボックスを取得して問題を抱えているが、私はエラーに.Bottomは読み取り専用です

を受け取る「ボトム」読み取りですプロパティのみ。

リストボックスの上下にボタンがあるため、パネル内のFillを使用しても機能しません。ここに私のコードのサンプルです:

[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”) 
[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Drawing”) 

$form.ResizeEnd 
$form = New-Object System.Windows.Forms.Form 
$form.Size = New-Object System.Drawing.Size(1040,459) 
$form.KeyPreview = $true 
$form.StartPosition = ‘centerscreen’ 
$form.BackColor = 'MidnightBlue' 
$form.Add_KeyDown({if($_.KeyCode -eq "Escape"){$form.Close()}}) 
$form.Text = "Dialog Box 2.0" 
$form.Icon = [system.drawing.icon]::ExtractAssociatedIcon($PSHOME + "\powershell_ise.exe") 

$buttonPanel3 = New-Object Windows.Forms.Panel 
$buttonPanel3.Size = New-Object Drawing.Size @(290,70) 
$buttonPanel3.Dock = "left" 
$buttonPanel3.BackColor = 'Blue' 

$inputbox = New-Object System.Windows.Forms.ListBox 
$inputbox.BorderStyle = 'NONE' 
$inputbox.Font = New-Object System.Drawing.Font(“segoe UI”,9) 
$inputbox.SelectionMode = "MultiExtended" 
$inputbox.Left = 10 
$inputbox.Top = 105 
$inputbox.Width = 200 
$inputbox.Bottom = $form.Height -215 
$inputbox.Height = $form.Height -215 

$buttonPanel3.Controls.Add($inputbox) 
$form.Controls.Add($buttonPanel3) 
$form.ShowDialog() 

誰かが素晴らしいだろう、フォームのサイズを変更する場合(縦拡大を主とする)サイズを変更し、リストボックスのいくつかのサンプルコードを与えることができれば。

+1

編集 'Height'プロパティではなく、' Bottom'プロパティ –

+0

、私はそれが右に初期化されますheightプロパティを編集しますが、プログラムの実行中は変更されません。 – CuriousOne

+0

あなたは手動で(コントロールの枠線をドラッグして)操作しようとしていますか?私は、フォームが表示されている間に、コントロールのサイズをプログラムで変更しようとしていません。 –

答えて

1

フォームを完全に並べ替える方法とfillメソッドを使用する方法がありましたが、ここでは本当の問題であったため、フォームのサイズ変更についておしゃべりをしていました。

フォームのサイズ変更ハンドラは、$form.Add_Resize({})になります。角括弧の内側では、高さと幅のプロパティを必要に応じて変更できます。この場合、私は唯一の高さプロパティを望んでいたので、コードは次のようになります:

[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”) 
[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Drawing”) 

$form.ResizeEnd 
$form = New-Object System.Windows.Forms.Form 
$form.Size = New-Object System.Drawing.Size(1040,459) 
$form.KeyPreview = $true 
$form.StartPosition = ‘centerscreen’ 
$form.BackColor = 'MidnightBlue' 
$form.Add_KeyDown({if($_.KeyCode -eq "Escape"){$form.Close()}}) 
$form.Text = "Dialog Box 2.0" 
$form.Icon = [system.drawing.icon]::ExtractAssociatedIcon($PSHOME + "\powershell_ise.exe") 
$form.Add_Resize({ 
    $inputbox.Height = $form.Height -215 
}) 

$buttonPanel3 = New-Object Windows.Forms.Panel 
$buttonPanel3.Size = New-Object Drawing.Size @(290,70) 
$buttonPanel3.Dock = "left" 
$buttonPanel3.BackColor = 'Blue' 

$inputbox = New-Object System.Windows.Forms.ListBox 
$inputbox.BorderStyle = 'NONE' 
$inputbox.Font = New-Object System.Drawing.Font(“segoe UI”,9) 
$inputbox.SelectionMode = "MultiExtended" 
$inputbox.Left = 10 
$inputbox.Top = 105 
$inputbox.Width = 200 
$inputbox.Height = $form.Height -215 

$buttonPanel3.Controls.Add($inputbox) 
$form.Controls.Add($buttonPanel3) 
$form.ShowDialog()