Grafik Tarih Seçici Oluşturma
kullanıcıların ayın gününü seçmesini sağlayan grafik, takvim stili bir denetim içeren bir form oluşturmak için Windows PowerShell 3,0 ve üzeri sürümleri kullanın.
Grafik tarih seçici denetimi oluşturma
aşağıdakileri kopyalayıp Windows PowerShell ıse 'ye yapıştırın ve sonra bir Windows PowerShell betiği (.ps1) olarak kaydedin.
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())"
}
betik iki .NET Framework sınıfı yükleyerek başlar: system. Drawing ve system. Windows. Forms. sonra Windows .NET Framework sınıfının yeni bir örneğini başlatabilirsiniz . Forms. form; Bu, denetim eklemeye başlayabilmeniz için boş bir form veya pencere sağlar.
$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
}
Bu örnek, özellik özelliği ve Hashtable kullanarak bu sınıfın dört özelliğine değerler atar.
startposition: bu özelliği eklememezseniz, Windows form açıldığında bir konum seçer. Bu özelliği CenterScreen ekranına ayarlayarak, formu her yüklediğinde ekranın ortasında otomatik olarak görüntülemekde olursunuz.
Boyut: Bu, formun piksel cinsinden boyutudur. Yukarıdaki komut dosyası, 230 piksel yüksekliğinde 243 piksel genişliğinde bir form oluşturur.
Metin: Bu, pencerenin başlığı olur.
En üst: Bu özelliği olarak ayarlayarak
$true, pencereyi diğer açık pencereler ve iletişim kutularını açmak için zorlayabilirsiniz.
Sonra, formunuza bir Takvim denetimi oluşturun ve ekleyin. Bu örnekte, geçerli gün vurgulanmaz veya daire içinde değildir. Kullanıcılar takvimde tek seferde yalnızca bir gün seçebilir.
$calendar = New-Object Windows.Forms.MonthCalendar -Property @{
ShowTodayCircle = $false
MaxSelectionCount = 1
}
$form.Controls.Add($calendar)
Sonra, formunuz için bir Tamam düğmesi oluşturun. Tamam düğmesinin boyutunu ve davranışını belirtin. Bu örnekte, düğme konumu formun en üst kenarından 165 piksel ve sol kenardan 38 piksel olur. Düğme yüksekliği 23 pikselden, düğme uzunluğu 75 piksel olur. betik, düğme davranışlarını belirlemede önceden tanımlı Windows Forms türlerini kullanır.
$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)
Benzer şekilde, bir iptal düğmesi oluşturursunuz. İptal düğmesi en üstten 165 pikselden, ancak pencerenin sol kenarından 113 pikselden oluşur.
$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)
Formu Windows göstermek için aşağıdaki kod satırını ekleyin.
$result = $form.ShowDialog()
son olarak, blok içindeki kod, if kullanıcılar takvim üzerinde bir gün seçtikten sonra formla ne yapılacağını Windows söyler ve tamam düğmesine tıklayın veya enter tuşuna basın. Windows PowerShell, kullanıcılara seçili tarihi görüntüler.
if ($result -eq [Windows.Forms.DialogResult]::OK) {
$date = $calendar.SelectionStart
Write-Host "Date selected: $($date.ToShortDateString())"
}