今回は「PowerShellでユーザーフォームを作る - データグリッドビュー編 -」です。
データグリッドビュー(DataGridView)はリストビューと似ていますが、どちらかと言うとOfficeソフトのExcelに近いと思います。
データグリッドビューの特徴は、
1.並び替え機能が付いていること
2.手動でアイテムを追加できること
3.行の高さや列幅を変更できること
4.行の表示/非表示が簡単であること などが挙げられます。
今回はそんなデータグリッドビューの基本的な部分をご紹介していきます。
<今回の完成品>
Excelのように見える部分がデータグリッドビューです。
それではスクリプトを記述していきます。
上記内容をコピーし、PowerShell ISEに貼り付けて実行すると上の画像と同じものが表示されるはずです。
# PowerShellでユーザーフォームを作る - データグリッドビュー編 -
Add-Type -AssemblyName System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
$form.Size = "500,300"
$form.Text = "タイトル"
# データグリッドビュー
$Grid = New-Object System.Windows.Forms.DataGridView
$Grid.Size = "350,200"
# 列数を指定する
$Grid.ColumnCount = 3
# 列タイトルを指定する
$Grid.Columns[0].Name = "番号"
$Grid.Columns[1].Name = "氏名"
$Grid.Columns[2].Name = "性別"
# アイテムを追加する
$Item = "01","野比 のび太","男"
[void]$Grid.Rows.Add($Item[0],$Item[1],$Item[2])
$Item2 = "02","骨川 スネ夫","男"
[void]$Grid.Rows.Add($Item2[0],$Item2[1],$Item2[2])
$Item3 = "03","剛田 ジャイ子","女"
[void]$Grid.Rows.Add($Item3[0],$Item3[1],$Item3[2])
# 閉じるボタン
$Button = New-Object System.Windows.Forms.Button
$Button.Location = "400,230"
$Button.Size = "80,30"
$Button.Text = "閉じる"
$Button.FlatStyle = "popup"
$Button.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.Controls.AddRange(@($Grid,$Button))
$form.Showdialog()
上記内容をコピーし、PowerShell ISEに貼り付けて実行すると上の画像と同じものが表示されるはずです。
それでは解説をしていきます。
また過去の記事で解説した部分については割愛致します。
内容をご確認いただきたい場合は【ユーザーフォーム - 基礎編 -】をご覧ください。
*****解説*****************************************************************************
また過去の記事で解説した部分については割愛致します。
内容をご確認いただきたい場合は【ユーザーフォーム - 基礎編 -】をご覧ください。
*****解説*****************************************************************************
# データグリッドビュー
$Grid = New-Object System.Windows.Forms.DataGridView
$Grid.Size = "350,200"
ここでは、DataGridViewクラスをインスタンス化し、Sizeプロパティを設定しています。
当然、他にもたくさんのプロパティがありますが、今回は基本編ということで、省略します。
今後、別の記事にまとめますので、その際はここにリンクを追加するようにします。
# 列数を指定する
$Grid.ColumnCount = 3
ここでは「列数の指定」を行っています。
これをしなければエラーとなり、以降の処理ができません。
つまり、事前にどういう表にしたいかを検討し、列数を決めておく必要があります。
# 列タイトルを指定する
$Grid.Columns[0].Name = "番号"
$Grid.Columns[1].Name = "氏名"
$Grid.Columns[2].Name = "性別"
列数を指定したあとは、タイトルを付けていきます。
Excelでいうと、「A」「B」「C」・・・の部分に相当します。
# アイテムを追加する
$Item = "01","野比 のび太","男"
[void]$Grid.Rows.Add($Item[0],$Item[1],$Item[2])
次にアイテムを追加していきます。
今回は$Itemという配列を作った上で各要素を追加していますが、別の方法でも追加は可能です。
# アイテムを追加する
$Item_A = "01"
$Item_B ="野比 のび太"
$Item_C = "男"
[void]$Grid.Rows.Add($Item_A,$Item_B,$Item_C)
このように記述しても結果は同じです。
*************************************************************************************************
解説は以上となります。
解説は以上となります。
冒頭でも書いていますが、データグリッドビューはデフォルトで並び替え機能が付いています。
なので、「氏名」の部分をクリックすると順番が入れ替わります。
また、空白となっている最終行はアイテムを新規追加するのに使用しますし、すでに追加されているアイテムの各項目も自由に編集することができるようになっています。
(プロパティの設定で編集不可にしたり、新規追加行は非表示にすることも可能です)
データグリッドビューはリストビューよりも自由度が高いのが魅力ですので、様々な場面で活躍してくれると思います。
=============================================================
本投稿に関する疑問や質問には可能な限りお答えさせていただきます。
お気軽にコメントやメールをお送りください。
(リクエストも歓迎します)
メール:tkk-powershell@gmail.com
また、間違いのご指摘・アドバイス等も歓迎いたします。
=============================================================
Google+、Twitterで更新情報をお届けしています!
ぜひフォローをお願い致します!
=============================================================
本投稿に関する疑問や質問には可能な限りお答えさせていただきます。
お気軽にコメントやメールをお送りください。
(リクエストも歓迎します)
メール:tkk-powershell@gmail.com
また、間違いのご指摘・アドバイス等も歓迎いたします。
=============================================================
Google+、Twitterで更新情報をお届けしています!
ぜひフォローをお願い致します!
=============================================================
0 件のコメント:
コメントを投稿
疑問・質問・リクエスト お気軽にどうぞ (^O^)/