Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu örnek yalnızca Windows platformları için geçerlidir.
Kullanıcıların liste kutusu denetiminden öğe seçmesine olanak tanıyan bir iletişim kutusu oluşturmak için Windows PowerShell 3.0 ve sonraki sürümleri kullanın.
Liste kutusu denetimi oluşturma ve bu denetimden öğe seçme
Aşağıdakini kopyalayıp Windows PowerShell ISE'ye yapıştırın ve powershell betiği (.ps1) dosyası olarak kaydedin.
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
}
Betik iki .NET Framework sınıfı yükleyerek başlar: System.Drawing ve System.Windows.Forms. Ardından System.Windows.Forms.Form .NET Framework sınıfının yeni bir örneğini başlatırsınız. Bu, denetim eklemeye başlayabileceğiniz boş bir form veya pencere sağlar.
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
Form sınıfının bir örneğini oluşturduktan sonra, değerleri bu sınıfın üç özelliğine atayın.
- Metin. Bu, pencerenin başlığı olur.
- Boyut. Bu, formun piksel cinsinden boyutudur. Yukarıdaki betik, 300 piksel genişliğinde ve 200 piksel uzunluğunda bir form oluşturur.
- Başlangıç Pozisyonu. Bu isteğe bağlı özellik, önceki betikte CenterScreen olarak ayarlanır. Bu özelliği eklemezseniz, Form açıldığında Windows bir konum seçer. StartingPosition'i CenterScreenolarak ayarladığınızda, form her yüklendiğinde otomatik olarak ekranın ortasında görüntülenir.
$form.Text = 'Select a Computer'
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = 'CenterScreen'
Ardından formunuz için bir Tamam düğmesi oluşturun. Tamam düğmesinin boyutunu ve davranışını belirtin. Bu örnekte düğme konumu formun üst kenarından 120 piksel ve sol kenardan 75 pikseldir. Düğme yüksekliği 23 piksel, düğme uzunluğu ise 75 pikseldir. Betik, düğme davranışlarını belirlemek için önceden tanımlanmış Windows Forms türlerini kullanır.
$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)
Benzer şekilde, bir İptal düğmesi oluşturursunuz. İptal düğmesi üstten 120 piksel, pencerenin sol kenarından 150 pikseldir.
$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)
Ardından, pencerenizde kullanıcıların sağlamasını istediğiniz bilgileri açıklayan etiket metni sağlayın. Bu durumda, kullanıcıların bir bilgisayar seçmesini istersiniz.
$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)
Kullanıcıların etiket metninizde açıkladığınız bilgileri sağlamasına olanak tanıyan denetimi (bu örnekte liste kutusu) ekleyin. Liste kutularının yanı sıra uygulayabileceğiniz birçok denetim daha vardır; daha fazla denetim için bkz . System.Windows.Forms Ad Alanı.
$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
Sonraki bölümde, liste kutusunun kullanıcılara görüntülenmesini istediğiniz değerleri belirtirsiniz.
Uyarı
Bu betik tarafından oluşturulan liste kutusu yalnızca bir seçime izin verir. Birden çok seçime izin veren bir liste kutusu denetimi oluşturmak için SelectionMode özelliği için aşağıdakine benzer bir değer belirtin: $listBox.SelectionMode = 'MultiExtended'. Daha fazla bilgi için Çoklu seçim Liste Kutuları'na bakın.
[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')
Liste kutusu denetimini formunuza ekleyin ve Windows'a formu açıldığında diğer pencerelerin ve iletişim kutularının üzerinde açmasını sağlayın.
$form.Controls.Add($listBox)
$form.Topmost = $true
Formu Windows'da görüntülemek için aşağıdaki kod satırını ekleyin.
$result = $form.ShowDialog()
Son olarak, if bloğundaki kod, kullanıcılar liste kutusundan bir seçenek seçtikten sonra Windows'a formla ne yapması gerektiğini ve ardından Tamam düğmesine tıklayıp veya Enter tuşuna basmalarını belirtir.
if ($result -eq [System.Windows.Forms.DialogResult]::OK) {
$x = $listBox.SelectedItem
$x
}
Ayrıca bkz.
PowerShell