Powershell - CheckedListBox mit DataSource, Checked Items entfernen
Hallo zusammen,
ich finde gerade keine Lösung.
Ich habe eine CheckedListBox.
Die Checked Items sollen aus der CheckedListBox entfernt werden.
Bei der Verwendung von ItemsAddRange funktioniert dies auch.
Wenn ich aber die Daten über DataSource in die CheckListBox lade, funktioniert das leider nicht.
Wie kann ich die Checked Items in diesem Fall aus der ChecklistBox löschen.
Gruß
Markus2016
ich finde gerade keine Lösung.
Ich habe eine CheckedListBox.
Die Checked Items sollen aus der CheckedListBox entfernt werden.
Bei der Verwendung von ItemsAddRange funktioniert dies auch.
$Script:xxxBox = New-Object System.Windows.Forms.CheckedListBox
$Script:xxxBox.Items.AddRange($xxx)
ForEach ($_ in @($Script:xxxBox.CheckedItems)) { $Script:xxxBox.Items.Remove($_) }
Wenn ich aber die Daten über DataSource in die CheckListBox lade, funktioniert das leider nicht.
$Script:xxxBox.DataSource = $Script:xxx
Wie kann ich die Checked Items in diesem Fall aus der ChecklistBox löschen.
Gruß
Markus2016
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 356657
Url: https://administrator.de/contentid/356657
Ausgedruckt am: 27.11.2024 um 13:11 Uhr
3 Kommentare
Neuester Kommentar
Wie kann ich die Checked Items in diesem Fall aus der ChecklistBox löschen
Indem du sie aus der Datenquelle löschst. Deine Datenquelle kennen wir nicht.Ablauf wäre aber folgender: Listbox mit Sdhleife durchlaufen und checkeditems ausfiltern, dann erneute Achleufe über diese Elemente, diesmal aber dann die Datenquelle filtern nach einem Merkmal aus der Listbox und anschließendem Löschen aus der Datenquelle.
Servus Markus,
hier ein Beispiel mit einer DataTable als Datenquelle.
Grüße Uwe
hier ein Beispiel mit einer DataTable als Datenquelle.
function GenerateForm {
#region Import the Assemblies
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null
#endregion
$form1 = New-Object System.Windows.Forms.Form
$btnDeleteItems = New-Object System.Windows.Forms.Button
$lb = New-Object System.Windows.Forms.CheckedListBox
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
# generate demo datasource
$global:datasource = New-Object System.Data.DataTable
$global:datasource.Columns.Add("Name")
$global:datasource.Rows.Add("Max Muster")
$global:datasource.Rows.Add("Anna Musterfrau")
$global:datasource.Rows.Add("Herbert Dietrich")
$global:datasource.Rows.Add("Franz Dichter")
$handler_form1_Load=
{
# set datasource of listbox
$lb.DataSource = $global:datasource
# set display ad value member for listbox
$lb.DisplayMember = "Name"
$lb.ValueMember = "Name"
}
$handler_btnDeleteItems_Click=
{
# remove checked rows from datasource
$lb.CheckedItems.Row | %{$global:datasource.Rows.Remove($_)}
}
$OnLoadForm_StateCorrection=
{#Correct the initial state of the form to prevent the .Net maximized form issue
$form1.WindowState = $InitialFormWindowState
}
#----------------------------------------------
#region Generated Form Code
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 174
$System_Drawing_Size.Width = 292
$form1.ClientSize = $System_Drawing_Size
$form1.DataBindings.DefaultDataSourceUpdateMode = 0
$form1.Name = "form1"
$form1.Text = "CheckedListBox item removal"
$form1.add_Load($handler_form1_Load)
$btnDeleteItems.Anchor = 14
$btnDeleteItems.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 142
$btnDeleteItems.Location = $System_Drawing_Point
$btnDeleteItems.Name = "btnDeleteItems"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 268
$btnDeleteItems.Size = $System_Drawing_Size
$btnDeleteItems.TabIndex = 1
$btnDeleteItems.Text = "Delete checked items"
$btnDeleteItems.UseVisualStyleBackColor = $True
$btnDeleteItems.add_Click($handler_btnDeleteItems_Click)
$form1.Controls.Add($btnDeleteItems)
$lb.Anchor = 15
$lb.DataBindings.DefaultDataSourceUpdateMode = 0
$lb.FormattingEnabled = $True
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 12
$lb.Location = $System_Drawing_Point
$lb.Name = "lb"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 124
$System_Drawing_Size.Width = 268
$lb.Size = $System_Drawing_Size
$lb.TabIndex = 0
$form1.Controls.Add($lb)
#endregion Generated Form Code
#Save the initial state of the form
$InitialFormWindowState = $form1.WindowState
#Init the OnLoad event to correct the initial state of the form
$form1.add_Load($OnLoadForm_StateCorrection)
#Show the Form
$form1.ShowDialog()| Out-Null
} #End Function
#Call the Function
GenerateForm