Powershell Button um Listbox einträge auszuwählen
Hallo,
ist es möglich Einträge in einer Listbox per extra Button auszuwählen? In einer langen Liste hätte man so einige abkürzungen. Beim Code unten sieht man vll. was ich meine
ist es möglich Einträge in einer Listbox per extra Button auszuwählen? In einer langen Liste hätte man so einige abkürzungen. Beim Code unten sieht man vll. was ich meine
$x = @()
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = "Data Entry Form"
$objForm.Size = New-Object System.Drawing.Size(300,200)
$objForm.StartPosition = "CenterScreen"
$objForm.KeyPreview = $True
$objForm.Add_KeyDown({
if ($_.KeyCode -eq "Enter") {
$script:x = $objListbox.SelectedItems
$objForm.Close()
}
})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
{$objForm.Close()}})
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(75,320)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = "OK"
$OKButton.Add_Click(
{
$script:x = $objListbox.SelectedItems
$objForm.Close()
})
$objForm.Controls.Add($OKButton)
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(150,320)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = "Cancel"
$CancelButton.Add_Click({$objForm.Close()})
$objForm.Controls.Add($CancelButton)
$objLabel = New-Object System.Windows.Forms.Label
$objLabel.Location = New-Object System.Drawing.Size(10,20)
$objLabel.Size = New-Object System.Drawing.Size(280,20)
$objLabel.Text = "Please make a selection from the list below:"
$objForm.Controls.Add($objLabel)
$objListbox = New-Object System.Windows.Forms.Listbox
$objListbox.Location = New-Object System.Drawing.Size(10,40)
$objListbox.Size = New-Object System.Drawing.Size(260,20)
$Font = New-Object System.Drawing.Font("Verdana",10,[System.Drawing.FontStyle]::Regular)
# Font styles are: Regular, Bold, Italic, Underline, Strikeout
$objForm.Font = $Font
$objForm.AutoSize = $True
$objForm.AutoSizeMode = "GrowAndShrink"
$objListbox.SelectionMode = "MultiExtended"
$trennstriche = @('----------Test-Eintrag----------','','Test2')
$objListBox.Items.AddRange(@(
"Item 1"
"Item 2"
"Item 3"
$trennstriche
"Item 4"
"Item 5"
$trennstriche
"Item 6"
$trennstriche[1]
"Item 7"
$trennstriche
"Item 8"
$trennstriche[2]
"Item 9"
))
$ItemButton1 = New-Object System.Windows.Forms.Button
$ItemButton1.Location = New-Object System.Drawing.Size(75,380)
$ItemButton1.Size = New-Object System.Drawing.Size(80,80)
$ItemButton1.Text = "Item 1 und Item 2"
$objForm.Controls.Add($ItemButton1)
$ItemButton1.Add_Click(
{
??????????????????????????????
})
$ItemButton2 = New-Object System.Windows.Forms.Button
$ItemButton2.Location = New-Object System.Drawing.Size(160,380)
$ItemButton2.Size = New-Object System.Drawing.Size(80,80)
$ItemButton2.Text = "Item 6, 7 und 8"
$objForm.Controls.Add($ItemButton2)
$ItemButton2.Add_Click(
{
??????????????????????????????
})
$objListbox.Height = 270
$objListbox.add_SelectedIndexChanged({
$objListbox.SelectedIndices | ?{$objListbox.GetSelected($_) -and $objListbox.Items[$_] -in $trennstriche} | %{$objListbox.SetSelected($_,$false)}
})
$objForm.Controls.Add($objListbox)
$objForm.Topmost = $True
$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()
$x
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 281198
Url: https://administrator.de/contentid/281198
Ausgedruckt am: 04.12.2024 um 08:12 Uhr
4 Kommentare
Neuester Kommentar
Moin Bugger,
Schau dir mal Zeile 105 an, dort findest du den passenden Befehl um Einträge zu selektieren:
Der erste Parameter ist der Index des Eintrags welcher selektiert werden soll (fängt bei 0 an zu zählen) und das $true besagt das dieser Eintrag markiert werden soll.
Gruß jodel32
Schau dir mal Zeile 105 an, dort findest du den passenden Befehl um Einträge zu selektieren:
$objListbox.SetSelected(0,$true)
Gruß jodel32
Stichwort ForEach Schleife ...
oder eine ganze ununterbrochene Reihe
0,1,2,5,7,8 | %{$objlistbox.SetSelected($_,$true)}
0..10 | %{$objlistbox.SetSelected($_,$true)}