Bagikan melalui


Kotak daftar beberapa pilihan

Sampel ini hanya berlaku untuk platform Windows.

Gunakan rilis Windows PowerShell 3.0 dan yang lebih baru untuk membuat kontrol kotak daftar beberapa pilihan dalam Formulir Windows kustom.

Membuat kontrol kotak daftar yang memperbolehkan beberapa pilihan

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 = 'Data Entry Form'
$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 make a selection from the list below:'
$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.SelectionMode = 'MultiExtended'

[void] $listBox.Items.Add('Item 1')
[void] $listBox.Items.Add('Item 2')
[void] $listBox.Items.Add('Item 3')
[void] $listBox.Items.Add('Item 4')
[void] $listBox.Items.Add('Item 5')

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

$result = $form.ShowDialog()

if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
    $x = $listBox.SelectedItems
    $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.

$form = New-Object System.Windows.Forms.Form

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 = 'Data Entry Form'
$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.Size(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.

$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 make a selection from the list below:'
$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 teks; 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)

Berikut adalah cara Anda menentukan bahwa Anda ingin mengizinkan pengguna memilih beberapa nilai dari daftar.

$listBox.SelectionMode = 'MultiExtended'

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

[void] $listBox.Items.Add('Item 1')
[void] $listBox.Items.Add('Item 2')
[void] $listBox.Items.Add('Item 3')
[void] $listBox.Items.Add('Item 4')
[void] $listBox.Items.Add('Item 5')

Tentukan tinggi maksimum kontrol kotak daftar.

$listBox.Height = 70

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 if blok menginstruksikan Windows apa yang harus dilakukan dengan formulir setelah pengguna memilih satu atau beberapa opsi dari kotak daftar, lalu klik tombol OK atau tekan tombol Enter .

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

Lihat juga