【Powershell】ListViewにデータを表示する

PowerShell

この記事では、PowerShellを使用してリストビュー(ListView)にデータを表示する方法について説明します。

参考
PowerShellでユーザーフォームを作成する

リストビューを作成する

リストビューを作成するには、まずフォームを作成し、そのフォーム上にリストビューを配置する必要があります。

では、リストビューを作成する手順を説明します。

1.必要なアセンブリの読み込み

最初に、Windowsフォームを操作するために必要なアセンブリを読み込みます。

Add-Type -AssemblyName System.Windows.Forms

2.フォームの作成

GUIアプリケーションのベースとなるフォームを作成します。

$form = New-Object Windows.Forms.Form
$form.Text = "ListViewのサンプル"
$form.Width = 250
$form.Height = 300

3.ListViewコントロールを作成する

$listView = New-Object System.Windows.Forms.ListView
$listView.View = "Details"
$listView.FullRowSelect = $true
$listView.GridLines = $true
$listView.Size = "180, 200"
$listView.Location = "20, 20"

2行目:ListView.View プロパティは、コントロールが項目の表示に使用するListView表示の種類を指定できます。、以下の5つの値を指定することができます。
・LargeIcon(大きいアイコン表示)
・Details(詳細表示)
・SmallIcon(小さいアイコン表示)
・List(リスト表示)
・Tile(タイル表示)
今回はDetailsを指定しました。

3行目:ListView.FullRowSelect プロパティは、ListView コントロール内のアイテムが選択されたときに、行全体をハイライトするかどうかを指定します。デフォルトでは、このプロパティは False に設定されており、ユーザーがアイテムをクリックすると、アイテムの最初の列(ラベル)のみがハイライトされます。
今回はTrueを指定しました。

4行目:ListView.GridLines プロパティは、ListView コントロール内のアイテムがグリッド線で区切られるかどうかを指定します。これにより、各アイテムやサブアイテムの間に線が表示され、視覚的に区切られます。このプロパティは Details ビューで有効です。
今回はTrueを指定しました。

4.フォームにListViewを追加

# リストビューをフォームに追加する
$form.Controls.Add($listView)

5.アプリケーションの実行

フォームを表示し、アプリケーションを実行します。

[void]$form.ShowDialog()

実行すると、以下のように表示されます。

ListView

リストビューが表示されました。

リストビューに列を追加する

リストビューに表示するデータの列を定義します。今回は、番号、名前、年齢という3つの列を追加します。

# 列を追加する
$columns = @("番号", "名前", "年齢")

foreach ($column in $columns) {
$listView.Columns.Add($column) | Out-Null
}

5行目:ListView.Columns.Add メソッドは、ListView コントロールの Columns コレクションに新しい列を追加します。Columns コレクションは、リストビューの各列を表します。今回は、番号、名前、年齢という3つの列がColumns コレクションに追加されました。

実行すると、以下のように表示されます。

ListView

リストビューに列が表示されました。

リストビューにデータを追加する

リストビューにデータを表示するには、データソースを指定する必要があります。データソースとしては、配列、データテーブル、リストなどが使用できます。以下は配列を使用する例です。

# サンプルデータを配列に設定
$testData = @(
@{ 番号 = 1; 名前 = "山田 太郎"; 年齢 = 30 },
@{ 番号 = 2; 名前 = "鈴木 次郎"; 年齢 = 25 },
@{ 番号 = 3; 名前 = "佐藤 花子"; 年齢 = 28 }
)

# データをリストビューに追加する
foreach ($data in $testData) {
$item = New-Object System.Windows.Forms.ListViewItem($data.番号)
$item.SubItems.Add($data.名前) | Out-Null
$item.SubItems.Add($data.年齢.ToString()) | Out-Null
$listView.Items.Add($item) | Out-Null
}

実行すると、以下のように表示されます。

ListView

リストビューにデータが表示されました。

完全なコード

リストビューにデータを表示する一連の処理は、以下のように記述することができます。

Add-Type -AssemblyName System.Windows.Forms

$form = New-Object Windows.Forms.Form 
$form.Text = "ListViewのサンプル" 
$form.Width = 250 
$form.Height = 300

$listView = New-Object System.Windows.Forms.ListView 
$listView.View = "Details" 
$listView.FullRowSelect = $true 
$listView.GridLines = $true 
$listView.Size = "180, 200" 
$listView.Location = "20, 20"

# 列を追加する 
$columns = @("番号", "名前", "年齢") 

foreach ($column in $columns) { 
$listView.Columns.Add($column) | Out-Null 
}

# サンプルデータを配列に設定
$testData = @(
@{ ID = 1; 名前 = "山田 太郎"; 年齢 = 30 },
@{ ID = 2; 名前 = "鈴木 次郎"; 年齢 = 25 },
@{ ID = 3; 名前 = "佐藤 花子"; 年齢 = 28 }
)

# データをリストビューに追加する
foreach ($data in $testData) {
$item = New-Object System.Windows.Forms.ListViewItem($data.ID)
$item.SubItems.Add($data.名前) | Out-Null
$item.SubItems.Add($data.年齢.ToString()) | Out-Null
$listView.Items.Add($item) | Out-Null
}

$form.Controls.Add($listView)
[void]$form.ShowDialog()

まとめ

PowerShellでリストビューにデータを表示する方法について説明しました。基本的な手順は、フォームの作成、リストビューの追加、列の設定、データの追加、そしてフォームの表示です。このスクリプトを基に、さらに複雑なGUIアプリケーションを作成することも可能です。PowerShellのGUI機能を使えば、管理タスクをより直感的に行えるツールを簡単に作成できますので、ぜひ試してみてください。

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