Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten przykład dotyczy tylko platform systemu Windows.
Użyj programu Windows PowerShell 3.0 i nowszych wersji, aby utworzyć formularz z graficzną kontrolką w stylu kalendarza, która umożliwia użytkownikom wybranie dnia miesiąca.
Tworzenie graficznej kontrolki selektora dat
Skopiuj i wklej następujący kod do środowiska Windows PowerShell ISE, a następnie zapisz go jako plik skryptu programu 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())"
}
Skrypt rozpoczyna się od załadowania dwóch klas programu .NET Framework: System.Drawing i System.Windows.Forms. Następnie uruchom nowe wystąpienie klasy .NET Framework Windows.Forms.Form. Zapewnia to pusty formularz lub okno, do którego można rozpocząć dodawanie kontrolek.
$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
}
W tym przykładzie wartości są przypisywane do czterech właściwości tej klasy przy użyciu właściwości Property i tabeli skrótu.
StartPosition: Jeśli ta właściwość nie zostanie dodana, system Windows wybierze lokalizację po otwarciu formularza. Ustawiając tę właściwość na CenterScreen, automatycznie wyświetlasz formularz w środku ekranu za każdym razem, gdy zostanie załadowany.
Rozmiar: jest to rozmiar formularza w pikselach. Powyższy skrypt tworzy formularz o szerokości 243 pikseli o wysokości 230 pikseli.
Tekst: staje się to tytułem okna.
Najważniejsze: ustawiając tę właściwość na
$true, możesz wymusić otwarcie okna na szczycie innych otwartych okien i okien dialogowych.
Następnie utwórz, a następnie dodaj kontrolkę kalendarza w formularzu. W tym przykładzie bieżący dzień nie jest wyróżniony ani okręgowy. Użytkownicy mogą wybrać tylko jeden dzień w kalendarzu jednocześnie.
$calendar = New-Object Windows.Forms.MonthCalendar -Property @{
ShowTodayCircle = $false
MaxSelectionCount = 1
}
$form.Controls.Add($calendar)
Następnie utwórz przycisk OK dla formularza. Określ rozmiar i zachowanie przycisku OK . W tym przykładzie pozycja przycisku wynosi 165 pikseli od górnej krawędzi formularza i 38 pikseli od lewej krawędzi. Wysokość przycisku wynosi 23 piksele, a długość przycisku wynosi 75 pikseli. Skrypt używa wstępnie zdefiniowanych typów formularzy systemu Windows do określania zachowań przycisków.
$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)
Podobnie utworzysz przycisk Anuluj . Przycisk Anuluj jest 165 pikseli od góry, ale 113 pikseli od lewej krawędzi okna.
$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)
Dodaj następujący wiersz kodu, aby wyświetlić formularz w systemie Windows.
$result = $form.ShowDialog()
Na koniec kod wewnątrz if bloku instruuje systemOwi Windows, co zrobić z formularzem po wybraniu przez użytkowników dnia w kalendarzu, a następnie kliknięciu przycisku OK lub naciśnięciu klawisza Enter . Program Windows PowerShell wyświetla wybraną datę dla użytkowników.
if ($result -eq [Windows.Forms.DialogResult]::OK) {
$date = $calendar.SelectionStart
Write-Host "Date selected: $($date.ToShortDateString())"
}