【PowerShell】DataGridViewの背景色を変更する

PowerShell

DataGridViewは、Windowsフォームアプリケーションでデータを表示および編集するために使用されるとても便利なコントロールです。
この記事では、DataGridViewの背景色を変更する方法について説明します。

ユーザーフォームの作成:
PowerShellでユーザーフォームを作成する
DataGridViewの作成:
PowerShell DataGridViewにデータを表示する

DataGridViewにデータを表示する

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

# Windows Formsアセンブリを読み込む
Add-Type -AssemblyName System.Windows.Forms

# 新しいフォームを作成
$form = New-Object Windows.Forms.Form
$form.Size = New-Object Drawing.Size(400, 300)
$form.Text = "DataGridViewのサンプル"

# データグリッドビュー
$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 = "年齢"

# DataGridViewをフォームに追加
$form.Controls.Add($Grid)

$Item = "01","山田 太郎","20"
[void]$Grid.Rows.Add($Item[0],$Item[1],$Item[2])

# フォームを表示
$form.ShowDialog()

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

DataGridViewの背景色を変更する

このDataGridViewの背景色(グレーの部分)を変更するには、BackgroundColor プロパティを使用します。

# DataGridViewの背景色を黄色に設定
$Grid.BackgroundColor = "Yellow"

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

DataGridView

背景色が黄色に設定されました。

DataGridViewのセルの背景色を変更する

DataGridViewのすべてのセルの背景色を変更するには、DefaultCellStyleプロパティを使用します。

# DataGridViewのセルの背景色を薄い黄色に設定
$Grid.DefaultCellStyle.BackColor = "#FFFFEFD5"

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

DataGridView

セルの背景色が薄い黄色に設定されました。

DataGridViewの行ヘッダーの背景色を変更する

DataGridViewの行ヘッダの背景色を変更するには、RowHeadersDefaultCellStyleプロパティを使用します。

# DataGridViewの行ヘッダの背景色を青色に設定
$Grid.RowHeadersDefaultCellStyle.BackColor = "Blue" 

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

DataGridView

行ヘッダが青色に変更されませんでした。
これは、EnableHeadersVisualStylesが有効になっているため、Powershellで設定した色ではなく、Windowsのテーマに合った外観が優先されるためです。
Powershellで設定した色を使用したい場合は、EnableHeadersVisualStylesを無効に設定します。

$Grid.EnableHeadersVisualStyles= $false;

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

DataGridView

左側の行ヘッダの背景色が青色になりました。

DataGridViewの列ヘッダーの背景色を変更する

DataGridViewの列ヘッダの背景色を変更するには、ColumnHeadersDefaultCellStyleプロパティを使用します。

# DataGridViewの列ヘッダの背景色を青色に設定
$Grid.ColumnHeadersDefaultCellStyle.BackColor = "Green" 

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

DataGridView 背景色

上の列ヘッダの背景色が緑色になりました。

完全なコード

DataGridViewの背景色を設定する一連の処理は、以下のように記述することができます。

# Windows Formsアセンブリを読み込む
Add-Type -AssemblyName System.Windows.Forms

# 新しいフォームを作成
$form = New-Object Windows.Forms.Form
$form.Size = New-Object Drawing.Size(400, 300)
$form.Text = "DataGridViewのサンプル" 

# データグリッドビュー 
$Grid = New-Object System.Windows.Forms.DataGridView 
$Grid.Size = "350,200" 

# Visualスタイルを使用しない
$Grid.EnableHeadersVisualStyles= $false;
# DataGridViewの背景色を黄色に設定
$Grid.BackgroundColor = "Yellow"
# DataGridViewのセルの背景色を薄い黄色に設定
$Grid.DefaultCellStyle.BackColor = "#FFFFEFD5"
# DataGridViewの行ヘッダの背景色を青色に設定
$Grid.RowHeadersDefaultCellStyle.BackColor = "Blue"
# DataGridViewの列ヘッダの背景色を青色に設定
$Grid.ColumnHeadersDefaultCellStyle.BackColor = "Green"

# 列数 
$Grid.ColumnCount = 3 

# 列タイトル 
$Grid.Columns[0].Name = "番号" 
$Grid.Columns[1].Name = "氏名" 
$Grid.Columns[2].Name = "年齢" 

# DataGridViewをフォームに追加 
$form.Controls.Add($Grid) 
$Item = "01","山田 太郎","20" 
[void]$Grid.Rows.Add($Item[0],$Item[1],$Item[2]) 

# フォームを表示 
$form.ShowDialog()

まとめ

今回は、PowerShellでDataGridViewの背景色を変更する方法について説明しました。

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