Membuat pemilih tanggal grafis

Sampel ini hanya berlaku untuk platform Windows.

Gunakan Rilis Windows PowerShell 3.0 dan yang lebih baru untuk membuat formulir dengan kontrol grafis bergaya kalender yang memungkinkan pengguna memilih hari dalam sebulan.

Membuat kontrol pemilih tanggal grafis

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 Windows.Forms.Form -Property @{
    StartPosition = [Windows.Forms.FormStartPosition]::CenterScreen
    Size          = New-Object Drawing.Size 243, 230
    Text          = 'Select a Date'
    Topmost       = $true
}

$calendar = New-Object Windows.Forms.MonthCalendar -Property @{
    ShowTodayCircle   = $false
    MaxSelectionCount = 1
}
$form.Controls.Add($calendar)

$okButton = New-Object Windows.Forms.Button -Property @{
    Location     = New-Object Drawing.Point 38, 165
    Size         = New-Object Drawing.Size 75, 23
    Text         = 'OK'
    DialogResult = [Windows.Forms.DialogResult]::OK
}
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)

$cancelButton = New-Object Windows.Forms.Button -Property @{
    Location     = New-Object Drawing.Point 113, 165
    Size         = New-Object Drawing.Size 75, 23
    Text         = 'Cancel'
    DialogResult = [Windows.Forms.DialogResult]::Cancel
}
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)

$result = $form.ShowDialog()

if ($result -eq [Windows.Forms.DialogResult]::OK) {
    $date = $calendar.SelectionStart
    Write-Host "Date selected: $($date.ToShortDateString())"
}

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

$form = New-Object Windows.Forms.Form -Property @{
    StartPosition = [Windows.Forms.FormStartPosition]::CenterScreen
    Size          = New-Object Drawing.Size 243, 230
    Text          = 'Select a Date'
    Topmost       = $true
}

Contoh ini menetapkan nilai ke empat properti kelas ini dengan menggunakan properti Properti dan hashtable.

  1. StartPosition: Jika Anda tidak menambahkan properti ini, Windows memilih lokasi saat formulir dibuka. Dengan mengatur properti ini ke CenterScreen, Anda secara otomatis menampilkan formulir di tengah layar setiap kali dimuat.

  2. Ukuran: Ini adalah ukuran formulir, dalam piksel. Skrip sebelumnya membuat formulir dengan lebar 243 piksel dengan tinggi 230 piksel.

  3. Teks: Ini menjadi judul jendela.

  4. Paling atas: Dengan mengatur properti ini ke $true, Anda dapat memaksa jendela untuk membuka di atas jendela dan kotak dialog lain yang terbuka.

Selanjutnya, buat lalu tambahkan kontrol kalender dalam formulir Anda. Dalam contoh ini, hari ini tidak disorot atau dilingkari. Pengguna hanya dapat memilih satu hari pada kalender pada satu waktu.

$calendar = New-Object Windows.Forms.MonthCalendar -Property @{
    ShowTodayCircle   = $false
    MaxSelectionCount = 1
}
$form.Controls.Add($calendar)

Selanjutnya, buat tombol OK untuk formulir Anda. Tentukan ukuran dan perilaku tombol OK . Dalam contoh ini, posisi tombol adalah 165 piksel dari tepi atas formulir, dan 38 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 Windows.Forms.Button -Property @{
    Location     = New-Object Drawing.Point 38, 165
    Size         = New-Object Drawing.Size 75, 23
    Text         = 'OK'
    DialogResult = [Windows.Forms.DialogResult]::OK
}
$form.AcceptButton = $okButton
$form.Controls.Add($okButton)

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

$cancelButton = New-Object Windows.Forms.Button -Property @{
    Location     = New-Object Drawing.Point 113, 165
    Size         = New-Object Drawing.Size 75, 23
    Text         = 'Cancel'
    DialogResult = [Windows.Forms.DialogResult]::Cancel
}
$form.CancelButton = $cancelButton
$form.Controls.Add($cancelButton)

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 hari di kalender, lalu klik tombol OK atau tekan tombol Enter . Windows PowerShell menampilkan tanggal terpilih kepada pengguna.

if ($result -eq [Windows.Forms.DialogResult]::OK) {
    $date = $calendar.SelectionStart
    Write-Host "Date selected: $($date.ToShortDateString())"
}

Lihat juga