この記事では、PowerShellでWindowsフォームを加工し、円形のフォームを表示する方法について説明します。
PowerShellでユーザーフォームを作成する
円形のWindowsフォームを表示する方法
フォームの形を加工するには、FormクラスのRegionプロパティに、表示するウィンドウ領域を指定します。
1.Windowsフォームに日時を表示するサンプル
まず、Windowsフォームに日時を表示するサンプルです。
# 必要なアセンブリを読み込む
Add-Type -AssemblyName System.Windows.Forms
# フォームを作成
$mainForm = New-Object Windows.Forms.Form
$mainForm.Text = "PowerShellユーザーフォーム"
$mainForm.Size = New-Object Drawing.Size(400, 400)
# ラベルを作成
$label = New-Object Windows.Forms.Label
$label.Text = Get-Date
$label.Size = New-Object Drawing.Size(400, 400)
$label.Location = New-Object Drawing.Point(140, 160)
# ラベルをフォームに追加
$mainForm.Controls.Add($label)
# フォームを表示
$mainForm.ShowDialog()
実行します。
2.円形のWindowsフォームを表示するサンプル
では、円形のWindowsフォームを表示するサンプルです。
# 必要なアセンブリを読み込む
Add-Type -AssemblyName System.Windows.Forms
# フォームを作成
$mainForm = New-Object Windows.Forms.Form
$mainForm.Text = "PowerShellユーザーフォーム"
$mainForm.Size = New-Object Drawing.Size(400, 400)
# ラベルを作成
$label = New-Object Windows.Forms.Label
$label.Text = Get-Date
$label.Size = New-Object Drawing.Size(400, 400)
$label.Location = New-Object Drawing.Point(140, 160)
# ラベルをフォームに追加
$mainForm.Controls.Add($label)
$path = New-Object Drawing.Drawing2D.GraphicsPath
$path.StartFigure()
$path.AddEllipse(80,90,200,200)
$path.CloseFigure()
$mainForm.Region = New-Object Drawing.Region($path)
# フォームを表示
$mainForm.ShowDialog()
実行します。
※このサンプルは、「×」ボタンを表示していないため、終了するときは、「Alt」+「F4」キーを押下します。
18行目~22行目が、1と2のサンプルの違いで、円形のWindowsフォームを表示するために追加した部分です。
18行目で、GraphicsPathオブジェクトを生成します。
19行目の「$path.StartFigure()」で、パス作成開始を宣言しています。
20行目の「$path.AddEllipse(80,90,200,200)」は楕円形のパスを作成するメソッドで、楕円に外接する四角形を指定しています。
フォームの左上隅を起点として、(80, 90」の位置を左上角とする、縦横200の正方形に内接する円、になります。
21行目の「$path.CloseFigure()」でパスの作成終了を宣言しています。
22行目の「$mainForm.Region = New-Object Drawing.Region($path)」でフォームのRegionプロパティに設定しています。
参考: GraphicsPath.AddEllipse メソッド (System.Drawing.Drawing2D) | Microsoft Learn
まとめ
この記事では、PowerShellでWindowsフォームを加工し、円形のフォームを表示する方法について説明しました。