Memilih item dari kotak daftar

Sampel ini hanya berlaku untuk platform Windows.

Gunakan rilis Windows PowerShell 3.0 dan yang lebih baru untuk membuat kotak dialog yang memungkinkan pengguna memilih item dari kontrol kotak daftar.

Membuat kontrol kotak daftar, dan memilih item darinya

Salin lalu tempelkan yang berikut ini ke WINDOWS PowerShell ISE, lalu simpan sebagai file skrip PowerShell (.ps1).

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$form = New-Object System.Windows.Forms.Form
$form.Text = 'Select a Computer'
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = 'CenterScreen'

$okButton = New-Object System.Windows.Forms.Button
$okButton.Location = New-Object System.Drawing.Point(75,120)
$okButton.Size = New-Object System.Drawing.Size(75,23)
$okButton.Text = 'OK'
$okButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)

$cancelButton = New-Object System.Windows.Forms.Button
$cancelButton.Location = New-Object System.Drawing.Point(150,120)
$cancelButton.Size = New-Object System.Drawing.Size(75,23)
$cancelButton.Text = 'Cancel'
$cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)

$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Please select a computer:'
$form.Controls.Add($label)

$listBox = New-Object System.Windows.Forms.ListBox
$listBox.Location = New-Object System.Drawing.Point(10,40)
$listBox.Size = New-Object System.Drawing.Size(260,20)
$listBox.Height = 80

[void] $listBox.Items.Add('atl-dc-001')
[void] $listBox.Items.Add('atl-dc-002')
[void] $listBox.Items.Add('atl-dc-003')
[void] $listBox.Items.Add('atl-dc-004')
[void] $listBox.Items.Add('atl-dc-005')
[void] $listBox.Items.Add('atl-dc-006')
[void] $listBox.Items.Add('atl-dc-007')

$form.Controls.Add($listBox)

$form.Topmost = $true

$result = $form.ShowDialog()

if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
    $x = $listBox.SelectedItem
    $x
}

Skrip dimulai dengan memuat dua kelas .NET Framework: System.Drawing dan System.Windows.Forms. Anda kemudian memulai instans baru kelas .NET Framework System.Windows.Forms.Forms. Yang menyediakan formulir atau jendela kosong tempat Anda dapat mulai menambahkan kontrol.

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

Setelah Anda membuat instans kelas Formulir , tetapkan nilai ke tiga properti kelas ini.

  • Teks. Ini menjadi judul jendela.
  • Ukuran. Ini adalah ukuran formulir, dalam piksel. Skrip sebelumnya membuat formulir yang lebarnya 300 piksel dengan tinggi 200 piksel.
  • StartingPosition. Properti opsional ini diatur ke CenterScreen dalam skrip sebelumnya. Jika Anda tidak menambahkan properti ini, Windows memilih lokasi saat formulir dibuka. Dengan mengatur StartingPosition ke CenterScreen, Anda secara otomatis menampilkan formulir di tengah layar setiap kali dimuat.
$form.Text = 'Select a Computer'
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = 'CenterScreen'

Selanjutnya, buat tombol OK untuk formulir Anda. Tentukan ukuran dan perilaku tombol OK . Dalam contoh ini, posisi tombol adalah 120 piksel dari tepi atas formulir, dan 75 piksel dari tepi kiri. Tinggi tombol adalah 23 piksel, sedangkan panjang tombol adalah 75 piksel. Skrip menggunakan jenis Formulir Windows yang telah ditentukan sebelumnya untuk menentukan perilaku tombol.

$okButton = New-Object System.Windows.Forms.Button
$okButton.Location = New-Object System.Drawing.Point(75,120)
$okButton.Size = New-Object System.Drawing.Size(75,23)
$okButton.Text = 'OK'
$okButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)

Demikian pula, Anda membuat tombol Batalkan . Tombol Batalkan adalah 120 piksel dari atas, tetapi 150 piksel dari tepi kiri jendela.

$cancelButton = New-Object System.Windows.Forms.Button
$cancelButton.Location = New-Object System.Drawing.Point(150,120)
$cancelButton.Size = New-Object System.Drawing.Size(75,23)
$cancelButton.Text = 'Cancel'
$cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)

Selanjutnya, berikan teks label di jendela Anda yang menjelaskan informasi yang Anda inginkan untuk diberikan pengguna. Dalam hal ini, Anda ingin pengguna memilih komputer.

$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Please select a computer:'
$form.Controls.Add($label)

Tambahkan kontrol (dalam hal ini, kotak daftar) yang memungkinkan pengguna memberikan informasi yang telah Anda jelaskan dalam teks label Anda. Ada banyak kontrol lain yang dapat Anda terapkan selain kotak daftar; untuk kontrol lainnya, lihat Namespace Layanan System.Windows.Forms.

$listBox = New-Object System.Windows.Forms.ListBox
$listBox.Location = New-Object System.Drawing.Point(10,40)
$listBox.Size = New-Object System.Drawing.Size(260,20)
$listBox.Height = 80

Di bagian berikutnya, Anda menentukan nilai yang Anda inginkan untuk ditampilkan kotak daftar kepada pengguna.

Catatan

Kotak daftar yang dibuat oleh skrip ini hanya mengizinkan satu pilihan. Untuk membuat kontrol kotak daftar yang memungkinkan beberapa pilihan, tentukan nilai untuk properti SelectionMode , mirip dengan yang berikut ini: $listBox.SelectionMode = 'MultiExtended'. Untuk informasi selengkapnya, lihat Kotak Daftar beberapa pilihan.

[void] $listBox.Items.Add('atl-dc-001')
[void] $listBox.Items.Add('atl-dc-002')
[void] $listBox.Items.Add('atl-dc-003')
[void] $listBox.Items.Add('atl-dc-004')
[void] $listBox.Items.Add('atl-dc-005')
[void] $listBox.Items.Add('atl-dc-006')
[void] $listBox.Items.Add('atl-dc-007')

Tambahkan kontrol kotak daftar ke formulir Anda, dan instruksikan Windows untuk membuka formulir di atas jendela dan kotak dialog lain saat dibuka.

$form.Controls.Add($listBox)
$form.Topmost = $true

Tambahkan baris kode berikut untuk menampilkan formulir di Windows.

$result = $form.ShowDialog()

Terakhir, kode di dalam blok If menginstruksikan Windows apa yang harus dilakukan dengan formulir setelah pengguna memilih opsi dari kotak daftar, lalu klik tombol OK atau tekan tombol Enter .

if ($result -eq [System.Windows.Forms.DialogResult]::OK) {
    $x = $listBox.SelectedItem
    $x
}

Lihat juga