ComboBox
項目を文字列にする場合
ps1
Add-Type -AssemblyName System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
$form.Text = "タイトル"
$form.Size = New-Object System.Drawing.Size(600, 200)
$combo = New-Object System.Windows.Forms.ComboBox
$combo.Location = New-Object System.Drawing.Point(370,10)
$combo.Width = 100
$combo.DropDownStyle = 'DropDownList'
$combo.Anchor = "Top, Right"
[void]$combo.Items.Add("項目0")
[void]$combo.Items.Add("項目1")
[void]$combo.Items.Add("項目2")
[void]$combo.Items.Add("項目3")
$combo.SelectedIndex = 2
Write-Host $combo.SelectedItem # => 項目2
$form.Controls.Add($combo)
[void]$form.ShowDialog()
項目をオブジェクトにする場合
表示と値を分けることができる。はずだが、うまいこと出ない。
ps1
Add-Type -AssemblyName System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
$form.Text = "タイトル"
$form.Size = New-Object System.Drawing.Size(600, 200)
$combo = New-Object System.Windows.Forms.ComboBox
$combo.Location = New-Object System.Drawing.Point(370,10)
$combo.Width = 100
$combo.DropDownStyle = 'DropDown'
$combo.Anchor = "Top, Right"
$data = @(
[PSCustomObject]@{ Name = "項目0"; Value = "c0" }
[PSCustomObject]@{ Name = "項目1"; Value = "c1" }
[PSCustomObject]@{ Name = "項目2"; Value = "c2" }
)
$combo.DisplayMember = "Name"
$combo.ValueMember = "Value"
$combo.DataSource = $data
# $combo.SelectedValue = "c1"
# Write-Host $combo.SelectedValue # => ?
$form.Controls.Add($combo)
[void]$form.ShowDialog()