この記事では、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()
実行すると、以下のように表示されます。
リストビューが表示されました。
リストビューに列を追加する
リストビューに表示するデータの列を定義します。今回は、番号、名前、年齢という3つの列を追加します。
# 列を追加する
$columns = @("番号", "名前", "年齢")
foreach ($column in $columns) {
$listView.Columns.Add($column) | Out-Null
}
5行目:ListView.Columns.Add メソッドは、ListView コントロールの Columns コレクションに新しい列を追加します。Columns コレクションは、リストビューの各列を表します。今回は、番号、名前、年齢という3つの列がColumns コレクションに追加されました。
実行すると、以下のように表示されます。
リストビューに列が表示されました。
リストビューにデータを追加する
リストビューにデータを表示するには、データソースを指定する必要があります。データソースとしては、配列、データテーブル、リストなどが使用できます。以下は配列を使用する例です。
# サンプルデータを配列に設定
$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
}
実行すると、以下のように表示されます。
リストビューにデータが表示されました。
完全なコード
リストビューにデータを表示する一連の処理は、以下のように記述することができます。
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機能を使えば、管理タスクをより直感的に行えるツールを簡単に作成できますので、ぜひ試してみてください。