2017-04-26 25 views
1

フォームのサイズが変更されたときにフォームオブジェクトのサイズを動的に変更する必要があります。フォームの端をドラッグ&ドロップしてサイズを変更します。 PowerShellでフォームのサイズ変更イベントを管理するための正しい構文を探していましたが、失敗しました。PowerShellフォームサイズ変更イベント

誰かがなぜresizeEndがフォーム上で動作しないのか教えていただけますか?また、resizeイベントを処理する正しい構文は何でしょうか?

これは私がしようとしていたものですが、私はエラーを取得保管:「フォームは、フォームのサイズが変更されたことを書き込み、ホストリサイズされている場合は、」

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

$form = New-Object System.Windows.Forms.Form 
$form.Size = New-Object System.Drawing.Size(1066,518) 
$form.KeyPreview = $true 
$form.StartPosition = "centerscreen" 
$form.BackColor = "MidnightBlue" 

$form.Add_KeyDown({ 
    if($_.KeyCode -eq "Escape") { 
     $form.Close() 
    } 
}) 

$form.Text = "Dialog Box 5.1" 
$form.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($PSHOME + "\powershell_ise.exe") 
$form.MinimumSize = New-Object System.Drawing.Size(1066,525) 

#$form.SizeChanged({ $errorBox1.AppendText("resize") }) 
#$form.Resize({ Write-Host "resize" }) 
#$form.ClientSizeChanged({ Write-Host "size" }) 
$form.ResizeEnd({ Write-Host "resize" }) 
#$form.SizeChanged({ Write-Host "size" }) 
#$form.ControlAdded({ Write-Host "event" }) 
#$form.AutoSizeMode = New-Object System.Windows.Forms.AutoSizeMode 
#$form.AutoSizeMode = "GrowAndShrink" 
#$form.OnDragDrop({ Write-Host "drop" }) 

$form.ShowDialog() | Out-Null 

基本的に、私は、言うことを試みていました。

+1

は、ここで[リンクです](https://foxdeploy.com/series/learning-gui-toolmaking-series/)を使って、PowerShellを使ってより良いGUIを作成することができます。 – TheMadTechnician

+0

リンクをありがとうが、GUIの基本的なコースのほかに、この質問にはどのように関連するのかわかりません。私はページの.Netのサブリンクを見てきましたが、イベントハンドラのサイズ変更については言及していません。 – CuriousOne

答えて

1

例:

$form.Add_Resize({ 
    "form resized" 
}) 

または

$resizeHandler = { "form resized" } 

$form.Add_Resize($resizeHandler) 

Some documentation

System.Windows.Forms.Formによって公開された方法の長いリストを見るために、これを試してみてください:

$form = New-Object System.Windows.Forms.Form 

$form | Get-Member -Force 
関連する問題