hakeの日記

Windows環境でプログラミングの勉強をしています。

PowerShell - GUIプログラム

ボタンをクリックすると文字を表示するプログラム。
デフォルトで使用できないクラスは、Add-Typeで読み込む。Formに設定したフォントはForm上の部品にも適用される。イベント登録はAdd_イベント名(処理)と記述する。

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

# Font
#$font = New-Object Drawing.Font("MS Pゴシック",12)
#$font = New-Object Drawing.Font("MS P明朝",12)
#$font = New-Object Drawing.Font("MS 明朝",12)
$font = New-Object Drawing.Font("MS ゴシック",12)

# Form
$form = New-Object Windows.Forms.Form 
$form.Text = "Hello"
$form.Size = "400,500" 
$form.Font = $font

# Text
$txt = New-Object Windows.Forms.TextBox
$txt.Location = "10,10"
$txt.Size = "360,380" 
$txt.Multiline = $true
$txt.ScrollBars = [Windows.Forms.ScrollBars]::Vertical
$txt.Focus()

# イベント動作
$proc1 = { $txt.AppendText("Hello Powershell World!!`r`n") }
$proc2 = { $txt.AppendText("Focus In`r`n") }

# Button
$btn = New-Object Windows.Forms.Button
$btn.Location = "40,400"
$btn.Size = "300,30"
$btn.Text = "Hello"
$btn.Add_Click($proc1)
$btn.Add_GotFocus($proc2)


# Formに部品を追加
$form.Controls.Add($txt)
$form.Controls.Add($btn)

# 表示
$form.ShowDialog()