vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Fortgeschrittene
Re: ComboBox Liste 
Autor: WaldiMaywood
Datum: 13.09.04 15:58

Realisieren könntest du das z.B. wie folgt:

Angenommen folgende einfache Personen Klasse:
 Public Class Person
        Public Sub New(ByVal Vorname As String, _
                       ByVal Nachname As String, _
                       ByVal Alter As Integer, _
                       ByVal ID As Integer)
            Me._Vorname = Vorname
            Me._Nachname = Nachname
            Me._Alter = Alter
            Me._ID = ID
        End Sub
        Public Property ID() As Integer
            Get
                Return Me._id
            End Get
            Set(ByVal Value As Integer)
                Me._id = Value
            End Set
        End Property
        Public Property Alter() As Integer
            Get
                Return Me._Alter
            End Get
            Set(ByVal Value As Integer)
                Me._Alter = Value
            End Set
        End Property
        Public Property Vorname() As String
            Get
                Return _Vorname
            End Get
            Set(ByVal Value As String)
                _Vorname = Value
            End Set
        End Property
        Public Property Nachname() As String
            Get
                Return _Nachname
            End Get
            Set(ByVal Value As String)
                _Nachname = Value
            End Set
        End Property
        Public Overrides Function ToString() As String
            Return Me.Nachname + ", " + Me.Vorname
        End Function
        Private _Vorname As String = Nothing
        Private _Nachname As String = Nothing
        Private _Alter As Integer = 0
        Private _ID As Integer = 0
    End Class
Die ComboBox mit den Per. Instanzen füllen:
    '// Füllen
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Me.ComboBox1.DrawMode = DrawMode.OwnerDrawFixed
        Me.ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
        Me.ComboBox1.Items.Add(New Person("Peter", "Lustig", 45, 1))
        Me.ComboBox1.Items.Add(New Person("Klaus", "Meier", 66, 2))
    End Sub
Jetzt das wichtigste: In dieser Routine wird die Darstellung der CB festgelegt:
    Private Sub ComboBox1_DrawItem(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem
        If e.Index < 0 Then Return
        Dim obj As Person = Me.ComboBox1.Items.Item(e.Index)
        Dim br As New SolidBrush(e.ForeColor)
        e.DrawBackground()
        e.Graphics.DrawString(obj.Vorname, e.Font, br, e.Bounds.X, e.Bounds.Y)
        e.Graphics.DrawString(obj.Nachname, e.Font, br, e.Bounds.X + 150, _
          e.Bounds.Y)
        e.Graphics.DrawString(obj.Alter, e.Font, br, e.Bounds.X + 300, _
        e.Bounds.Y)
        e.Graphics.DrawLine(New Pen(Color.Black, 1), e.Bounds.X + 130, _
        e.Bounds.Y, e.Bounds.X + 130, e.Bounds.Y + 15)
        e.Graphics.DrawLine(New Pen(Color.Black, 1), e.Bounds.X + 290, _
        e.Bounds.Y, e.Bounds.X + 290, e.Bounds.Y + 15)
    End Sub
Die markierte ID d. Benutzers, könntest du z.B. so ermitteln:
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim p As Person = DirectCast(Me.ComboBox1.SelectedItem, Person)
        MessageBox.Show("ID des Benutzers (" + p.ToString() + "): " + _
          p.ID.ToString())
    End Sub
Das Bsp. ist zwar etwas unflexibel, aber so in etwa könntest du das umsetzen.

Steve
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ComboBox Liste852Patti081511.09.04 21:10
Re: ComboBox Liste585WaldiMaywood13.09.04 15:58
Re: ComboBox Liste469Patti081513.09.04 21:12

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-2025 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