vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Eine Gruppe von ComboBoxen steuern (RELOADED) 
Autor: Manfred X
Datum: 02.04.16 19:40

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


Beitrag wurde zuletzt am 02.04.16 um 19:42:58 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Eine Gruppe von ComboBoxen steuern (RELOADED)1.173Manfred X02.04.16 19:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 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