PowerShell 【GUI編】



目次


フォーム

Form画面を作成する処理について解説します。

プログラムソース

ps1
using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms

$Form1 = New-Object Form
$Form1.Size = "400, 250"
$Form1.Text = "ざっくりわかるプログラミング講座"

$Form1.ShowDialog()
bat
powershell -WindowStyle Hidden ^
           -ExecutionPolicy Bypass PS1ファイル.ps1

解説

using namespace 名前空間

名前空間の指定を省略可能にします。

Add-Type –AssemblyName クラス名

.NET Frameworkクラスを定義します。

New-Object Form

フォームを生成します。

powershell –WindowsStyle Hidden

PowerShellウィンドウを非表示にします。

powershell –ExecutionPolicy Bypass PA1ファイル

セキュリティ警告なしで実行します。


ラベル

フォームにラベルを追加する処理について解説します。

プログラムソース

using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms

$Form1 = New-Object Form
$Form1.Size = "400, 250"

$Label1 = New-Object Label
$Label1.Text = "ラベル"
$Label1.Location = "10, 10"
$Label1.Size = "50, 20"
$Form1.Controls.Add($Label1)

$Form1.ShowDialog()

解説

New-Object Label

ラベルを生成します。


テキストボックス

フォームにテキストボックスを追加する処理について解説します。

プログラムソース

using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms

$Form1 = New-Object Form
$Form1.Size = "400, 250"

$Text1 = New-Object TextBox
$Text1.Location = "10, 10"
$Text1.Size = "100, 20"
$Form1.Controls.Add($Text1)

$Form1.ShowDialog()

解説

New-Object TextBox

テキストボックスを生成します。


ボタン

フォームにボタンを追加する処理について解説します。

プログラムソース

using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms

function Button1_Click(){
   [MessageBox]::Show("メッセージ")
}

$Form1 = New-Object Form
$Form1.Size = "400, 250“

$Button1 = New-Object Button
$Button1.Text = "ボタン"
$Button1.SetBounds(10, 10, 50, 20)
$Button1.Add_Click({Button1_Click})
$Form1.Controls.Add($Button1)

$Form1.ShowDialog()

解説

New-Object Button

ボタンを生成します。

ボタン.SetBounds(X座標,Y座標,幅,高さ)

指定した位置とサイズに設定します。

ボタン.Add_Click({ 関数名 })

クリックイベントに関数を指定します。


チェックボックス

フォームにチェックボックスを追加する処理について解説します。

プログラムソース

using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms

function Check_Click(){
   $Form1.Text = "1:"+$Check1.Checked+ `
                   "2:"+$Check2.Checked
}

$Form1 = New-Object Form
$Form1.Size = "400, 250"

$Check1 = New-Object CheckBox
$Check1.Text = "チェック1"
$Check1.SetBounds(10, 10, 100, 20)
$Check1.Add_Click({Check_Click})
$Form1.Controls.Add($Check1)

$Check2 = New-Object CheckBox
$Check2.Text = "チェック2"
$Check2.SetBounds(110, 10, 100, 20)
$Check2.Add_Click({Check_Click})
$Form1.Controls.Add($Check2)

$Form1.ShowDialog()

解説

New-Object CheckBox

チェックボックスを生成します。

チェックボックス.Add_Click({ 関数名 })

クリックイベントに関数を指定します。


ラジオボタン

フォームにラジオボタンを追加する処理について解説します。

プログラムソース

using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms

function Radio_Click(){
   If($Radio1.Checked -eq "true")
   {$Form1.Text="ラジオ1"} else {$Form1.Text="ラジオ2"}
}

$Form1 = New-Object Form
$Form1.Size = "400, 250"

$Radio1 = New-Object RadioButton
$Radio1.Text = "ラジオ1"
$Radio1.SetBounds(10, 10, 100, 20)
$Radio1.Add_Click({Radio_Click})
$Form1.Controls.Add($Radio1)

$Radio2 = New-Object RadioButton
$Radio2.Text = "ラジオ2"
$Radio2.SetBounds(110, 10, 100, 20)
$Radio2.Add_Click({Radio_Click})
$Form1.Controls.Add($Radio2)

$Form1.ShowDialog()

解説

New-Object RadioButton

ラジオボタンを生成します。

ラジオボタン.Add_Click({ 関数名 })

クリックイベントに関数を指定します。


コンボボックス

フォームにコンボボックスを追加する処理について解説します。

プログラムソース

using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms

function Combo_Changed(){
   $Form1.Text = $Combo1.SelectedItem
}

$Form1 = New-Object Form
$Form1.Size = "400, 250"

$Combo1 = New-Object ComboBox
$Combo1.SetBounds(10, 10, 100, 20)
$Combo1.Items.Add("項目1")
$Combo1.Items.Add("項目2")
$Combo1.Items.Add("項目3")
$Combo1.Items.Add("項目4")
$Combo1.Items.Add("項目5")
$Combo1.Add_SelectedIndexChanged({Combo_Changed})
$Form1.Controls.Add($Combo1)

$Form1.ShowDialog()

解説

New-Object ComboBox

コンボボックスを生成します。

コンボボックス.Add_SelectedIndexChanged({ 関数名 })

項目選択イベントに関数を指定します。


リストボックス

フォームにリストボックスを追加する処理について解説します。

プログラムソース

using namespace System.Windows.Forms
Add-Type -AssemblyName System.Windows.Forms

function List_Click(){
   $Form1.Text = $List1.SelectedItem
}

$Form1 = New-Object Form
$Form1.Size = "400, 250"

$List1 = New-Object ListBox
$List1.SetBounds(10, 10, 100, 60)
$List1.Items.Add("項目1")
$List1.Items.Add("項目2")
$List1.Items.Add("項目3")
$List1.Items.Add("項目4")
$List1.Items.Add("項目5")
$List1.Add_Click({List_Click})
$Form1.Controls.Add($List1)

$Form1.ShowDialog()

解説

New-Object ListBox

リストボックスを指定します。

リストボックス.Add_Click({ 関数名 })

クリックイベントに関数を指定します。