Mehrere ComboBoxen in Powershell "verknüpfen"
Moin zusammen,
ich habe ein "Problem" bei der Nutzung von ComboBoxen in einer PowerShell Form. Eigentlich ist es kein Problem sondern eine Herausforderung, die ich aber nicht gelöst bekomme.
Ich schreibe (nutze diese auch schon) eine Form zur Nutzung der Zeit Kontierung, mittels Klick auf einen Button wird die aktuelle Zeit in eine csv-Datei einträgt etc. Nun besteht die Möglichkeit, über eine ComboBox (angezeigt im Button), die zu bebuchende "Stelle" zu wechseln. Ich habe davon 7 Stück erstellt, da es vorkommt, dass man mal eben etwas für eine andere "Stelle" macht und die Zeiten da auch gebucht werden sollten.
Nun die Herausforderung:
Besteht die Möglichkeit die ComboBoxen so zu verbinden, dass, wenn ich in der ersten ComboBox Stelle1 ausgewählt habe dies in den anderen ComboBoxen nicht mehr möglich ist?
Ich könnte mir auch vorstellen die Einträge auszulesen und auf Dopplung zu prüfen und dann eine Warnung / Hinweis auszugeben.
Dann eine weitere Frage, kann ich eigentlich ForEach für ComboBoxen nutzen wenn ja wie bzw. wo könnte ich dazu etwas nachlesen? Ja, Google ist Dein bester Freund aber hier "Die Suche ist gut, die Finde ist sch..."
Dane im Voraus
Mike
ich habe ein "Problem" bei der Nutzung von ComboBoxen in einer PowerShell Form. Eigentlich ist es kein Problem sondern eine Herausforderung, die ich aber nicht gelöst bekomme.
Ich schreibe (nutze diese auch schon) eine Form zur Nutzung der Zeit Kontierung, mittels Klick auf einen Button wird die aktuelle Zeit in eine csv-Datei einträgt etc. Nun besteht die Möglichkeit, über eine ComboBox (angezeigt im Button), die zu bebuchende "Stelle" zu wechseln. Ich habe davon 7 Stück erstellt, da es vorkommt, dass man mal eben etwas für eine andere "Stelle" macht und die Zeiten da auch gebucht werden sollten.
Nun die Herausforderung:
Besteht die Möglichkeit die ComboBoxen so zu verbinden, dass, wenn ich in der ersten ComboBox Stelle1 ausgewählt habe dies in den anderen ComboBoxen nicht mehr möglich ist?
Ich könnte mir auch vorstellen die Einträge auszulesen und auf Dopplung zu prüfen und dann eine Warnung / Hinweis auszugeben.
Dann eine weitere Frage, kann ich eigentlich ForEach für ComboBoxen nutzen wenn ja wie bzw. wo könnte ich dazu etwas nachlesen? Ja, Google ist Dein bester Freund aber hier "Die Suche ist gut, die Finde ist sch..."
Dane im Voraus
Mike
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3811413306
Url: https://administrator.de/forum/mehrere-comboboxen-in-powershell-verknuepfen-3811413306.html
Ausgedruckt am: 20.04.2025 um 21:04 Uhr
11 Kommentare
Neuester Kommentar

Besteht die Möglichkeit die ComboBoxen so zu verbinden, dass, wenn ich in der ersten ComboBox Stelle1 ausgewählt habe dies in den anderen ComboBoxen nicht mehr möglich ist?
$combobox.add_SelectedIndexChanged({
$form.Controls | ?{$_.GetType().Name -eq 'ComboBox' -and $_.Name -ne $this.Name} | %{
$_.Items.Remove($this.SelectedItem)
}
})
kann ich eigentlich ForEach für ComboBoxen nutzen
$form.Controls | ?{$_.GetType().Name -eq 'ComboBox'} | foreach{}
certguy
Besteht die Möglichkeit die ComboBoxen so zu verbinden, dass, wenn ich in der ersten ComboBox Stelle1 ausgewählt habe dies in den anderen ComboBoxen nicht mehr möglich ist?
Klar geht das. Und wie meist führen viele Wege nach Rom.
Wenn du willst, dass der Eintrag der in Combo A schon ausgewählt wurde gar nicht mehr in Combo B als Auswahl vorhanden ist, dann brauchst du bei A ein SelectedIndexChanged-Event. Wenn das auslöst lädst du in Combo B alle möglichen Auswahlen neu rein außer die, die in A schon ausgewählt ist.
Wenn der Eintrag zwar vorhanden sein soll, aber eine Warnung auslösen soll brauchst du bei B ebenfalls ein SelectedIndexChanged-Event. Nur diesmal prüfst du, ob das was ausgewählt wurde identisch ist mit dem was in A schon ausgewählt wurde. Falls ja gibts du eine MessageBox aus und setzt die Auswahl zurück.
Das mal als grober Anriss wie es lösbar ist.
Manuel

Du kannst es auch ohne Namen machen dann muss der Vergleich nur
lauten
-and $_ -ne $this

Genau dafür gibt's das Validating Event
https://learn.microsoft.com/de-de/dotnet/api/system.windows.forms.contro ...
https://learn.microsoft.com/de-de/dotnet/api/system.windows.forms.contro ...