mehrere Comboboxen mit selbem Inhalt

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    mehrere Comboboxen mit selbem Inhalt

    Hallo,

    ich möchte gerne Komboboxen aus einem Pool mit Inhalt bestücken, der Inhalt soll aber nur einmal ausgewählt werden können. Sprich, wenn Combobox1 den ersten eintrag gewählt hat, soll dieser für die anderem Comboboxen nichtmehr zur Auswahl stehen.
    Wie kann man soetwas realisieren?

    Vielen Dank!
    Ist jetzt mal spontante Lösung

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. ComboBox1.Items.Add("Test 1")
    3. ComboBox1.Items.Add("Test 2")
    4. ComboBox1.Items.Add("Test 3")
    5. ComboBox2.Items.Add("Test 1")
    6. ComboBox2.Items.Add("Test 2")
    7. ComboBox2.Items.Add("Test 3")
    8. ComboBox3.Items.Add("Test 1")
    9. ComboBox3.Items.Add("Test 2")
    10. ComboBox3.Items.Add("Test 3")
    11. End Sub
    12. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _
    13. ComboBox1.SelectedIndexChanged, ComboBox2.SelectedIndexChanged, ComboBox3.SelectedIndexChanged
    14. Dim cbo As ComboBox = DirectCast(sender, ComboBox)
    15. Dim item As String = cbo.SelectedItem
    16. Dim lstCbo As New List(Of ComboBox)
    17. lstCbo.Add(ComboBox1)
    18. lstCbo.Add(ComboBox2)
    19. lstCbo.Add(ComboBox3)
    20. For i As Integer = 0 To lstCbo.Count - 1
    21. If Not DirectCast(lstCbo.Item(i), ComboBox).Equals(cbo) Then
    22. lstCbo.Item(i).Items.Remove(item)
    23. End If
    24. Next
    25. End Sub


    Die Befüllung der List of kann eventuell nocht anders von Statten gehen aber ich weiß ja nicht wie deien Form aufgebaut ist (Container, alle Comboboxen, etc.)

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten

    nemesis schrieb:

    Hallo,

    ich möchte gerne Komboboxen aus einem Pool mit Inhalt bestücken, der Inhalt soll aber nur einmal ausgewählt werden können. Sprich, wenn Combobox1 den ersten eintrag gewählt hat, soll dieser für die anderem Comboboxen nichtmehr zur Auswahl stehen.
    Wie kann man soetwas realisieren?

    Vielen Dank!

    ich mache soetwas immer mit bool
    wird in ComboBox a etwas ausgewählt wird der wert auf False gesetzt, dann noch festlegen, dass alle ComboBoxen nur True-Werte einlesen können. Hat den Nachteil, dass du nach einer Auswahl an einer CB auch den Inhalt aller anderen CBs wieder erneuern musst.

    Die Lösung von fichz sieht vernünftig aus. werde ich auch mal ausprobieren!
    @nemesis:
    Hast Du eine globale Liste, in der die Items stehen und die soll nun an n verschiedene Controls verteilt werden?
    Pack die Items in eine List (Of XXX). Wewnn Du ein Item rausholst, kannst Du es in der List (Of..) removen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!