PowerShellで円形のWindowsフォームを表示する

PowerShell

この記事では、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()

実行します。

Powershellのフォーム

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フォームを加工し、円形のフォームを表示する方法について説明しました。

タイトルとURLをコピーしました