vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2017
 
zurück
Rubrik: Controls · ListBox & ComboBox   |   VB-Versionen: VB2008 - VB201519.04.16
Eine Gruppe von ComboBoxen steuern

Gegenseitiges Steuern einer Gruppe von N-ComboBoxen, die an die gleiche String-Liste mit N-Einträgen gebunden sind

Autor:   Manfred BohnBewertung:     [ Jetzt bewerten ]Views:  1.541 
ohne HomepageSystem:  Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise bis zu 120,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 479,20 EUR statt 599,- EUR
  • sevDTA 3.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 20,00 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 55,20 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    Es war von einem Umsteiger gefragt worden, wie folgende Aufgabe zu lösen sei:

    Gegeben ist eine Gruppe von N-Comboboxen, die an die gleiche String-Liste mit N-Einträgen gebunden sind.

    Es soll erreicht werden, daß beim Wechsel des "SelectedIndex" einer Box durch den User, durch geeignete Aktualisierung des "Selectedindex" EINER anderen Box, wieder alle Listen-Einträge in den Boxen sichtbar sind.

    Beispiel ...

    Public Class frmCombos
      ' Gemeinsame Liste
      Dim lst As New List(Of String)({"A", "B", "C", "D", "E"})
      ' Liste der Comboboxen 
      Dim cbs As New List(Of ComboBox)
      Private Sub frmCombos_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
     
        CreateCombos()
      End Sub
      Private Sub CreateCombos()
        For i As Integer = 0 To lst.Count - 1
          Dim bs As New BindingSource With {.DataSource = lst}
          cbs.Add(New ComboBox With {.Parent = Me, .DataSource = bs, _
            .Top = i * 40, .Name = i.ToString, _
            .DropDownStyle = ComboBoxStyle.DropDown, _
            .SelectedIndex = i, .Tag = i})
     
          ' Zuordnung der Eventhandler-Routine
          AddHandler cbs(i).SelectedIndexChanged, AddressOf SelectedIndexChanged
        Next i
      End Sub
      Private Sub SelectedIndexChanged(sender As Object, _
        e As System.EventArgs)
     
        Dim cbo As ComboBox = DirectCast(sender, ComboBox)
     
        ' Der Listen-Index der Box, deren Selectedindex 
        ' vom Benutzer geändert worden ist
        Dim comboindex As Integer = CInt(cbo.Name)
     
        ' In der Tag-Eigenschaft steht noch der bisherige 
        ' Selectedindex
        Dim oldindex As Integer = CInt(cbo.Tag)
     
        For i As Integer = 0 To cbs.Count - 1
          If Not i = comboindex AndAlso _
            cbo.SelectedIndex = cbs(i).SelectedIndex Then
     
            ' Wechsel des SelectedIndex der Box,
            ' die den neu eingestellten Wert bisher angezeigt hat
            cbs(i).SelectedIndex = oldindex
            cbs(i).Tag = oldindex
          End If
        Next i
        cbo.Tag = cbo.SelectedIndex
      End Sub
    End Class

    Dieser Tipp wurde bereits 1.541 mal aufgerufen.

    Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

    Über diesen Tipp im Forum diskutieren
    Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

    Neue Diskussion eröffnen

    nach obenzurück


    Anzeige

    Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
    (einschl. Beispielprojekt!)

    Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
    - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
    - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
    Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
     
       

    Druckansicht Druckansicht Copyright ©2000-2017 vb@rchiv Dieter Otter
    Alle Rechte vorbehalten.
    Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

    Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel