vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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: ArrayList wieder aufdröseln 
Autor: WaldiMaywood
Datum: 23.08.04 19:03

... OK, hier mal meine Art, das zu erklären:

>> Die Klasse:

Die Klasse sollte nur ein kleines Bsp. sein. Es ist auch ohne weiteres möglich, eine Klasse zu erstellen die mehrere Eig. oder auch Überschreibung besitzt. Also mehr als Display- und Valuemember. z.B. Benutzernummer, Benutzername, Alter .. usw.
Aber sonst ist die Klasse verständlich, oder?

Hier findest du übrigens noch ein anderes Bsp.:http://www.vbarchiv.net/forum/read.php?f=10&i=9505&t=9452

>> Anwendung:
Dim a As New ArrayList
For Each dr As DataRow In dt.Rows
   a.Add(New TestClass(dr(0).ToString, dr(1).ToString))
Next
Me.ComboBox1.DataSource = a
Me.ComboBox1.DisplayMember = "DisplayMember"
Me.ComboBox1.ValueMember = "ValueMember"
Ist eigentlich auch verständlich? Wäre übrigens auch ohne dem Umweg einer ArrayList möglich. In etwa so:
For Each dr As DataRow In dt.Rows
   Me.ComboBox1.Items.Add(New TestClass(dr(0).ToString, dr(1).ToString))
Next
Bei dieser Var. kannst du dir die Display- und ValueMember sparen. Dafür benötigts du aber eine ToString() Überschreibung in der TestClass, auf welche die CB zugreift. Zum Beispiel:
Public Class TestClass
    Private dis As String
    Private val As String
    Public Sub New(ByVal dis As String, ByVal val As String)
        Me.dis = dis
        Me.val = val
    End Sub
    Public ReadOnly Property DisplayMember() As String
        Get
            Return dis
        End Get
    End Property
    Public ReadOnly Property ValueMember() As String
        Get
            Return val
        End Get
    End Property
    Public Overrides Function ToString() As String
      Return dis '// Wäre in der CB sichtbar
    End Function 
End Class
>> Zugriff auf die Elemente in der ComboBox
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal _
  e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
  Dim c As TestClass = DirectCast(Me.ComboBox1.SelectedItem, TestClass)
  MessageBox.Show(c.ValueMember + " : " + c.DisplayMember)
End Sub
Das ist eigentlich nicht so schwer zu verstehen. In der CB befinden sich jetzt statt normale Datentypen (wie String, Integer .. usw.), komplexe benutzerdefinierte Objekte. Mit DirectCast() oder CType() wandelst du das markierte Item in den richtigen Typ um, und setzt eine Referenz auf die Var. "c". Über die Var. "c" kannst du auf alle Member bzw. Eig. zugreifen. vom Prinzip her recht simpel. Wenn du dich int. mit OOP befasst, kommt dir dies irgendwann einmal als völlig selbst verständlich vor.

Übrigens: Über die CB Eigenschaften "SelectedItem.ToString()" und "SelectedValue.ToString()", ist es auch möglich auf die Display- und Valuewerte zuzugreifen. (Natürlich nur dann wenn du die DataSource Variante benutzt)

Hoffe es war leicht verdaulich. Wenn nicht, einfach nachfragen

Steve
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ArrayList wieder aufdröseln1.223accu23.08.04 16:03
Re: ArrayList wieder aufdröseln843Moderatorralf_oop23.08.04 16:13
Re: ArrayList wieder aufdröseln787eclere23.08.04 16:17
Re: ArrayList wieder aufdröseln781accu23.08.04 16:17
Re: ArrayList wieder aufdröseln790eclere23.08.04 16:16
Re: ArrayList wieder aufdröseln745accu23.08.04 16:23
Re: ArrayList wieder aufdröseln1.054WaldiMaywood23.08.04 16:23
Re: ArrayList wieder aufdröseln814accu23.08.04 16:41
Re: ArrayList wieder aufdröseln801WaldiMaywood23.08.04 17:32
Re: ArrayList wieder aufdröseln779accu23.08.04 17:54
Re: ArrayList wieder aufdröseln823WaldiMaywood23.08.04 18:36
Re: ArrayList wieder aufdröseln816accu23.08.04 18:08
Re: ArrayList wieder aufdröseln869WaldiMaywood23.08.04 19:03

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