CheckedListBox Index einen Wert zuweisen...

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    CheckedListBox Index einen Wert zuweisen...

    Also ich habe folgendes Problem Ich habe eine CheckedListBox und 6 Items dort drinne, ich habe z.B [x] den wert x = "Cola" zugewisen und lasse [x] von der CheckedListBox anzeigen nun möchte ich aber das wen ich jetzt den Button Kaufen drücke das er mir den betrag wo die Cola = x Kostet von [y] abziehen soll. Die Cola kostet jetzt zum Beispiel 1,50 Euro. [ y = 100.00 ]. Aber wie kann ich [x] denn Namen und den Wert 1,50 zuweisen???

    Ich weis auch natürlich das ich auch [ CheckedListBox.Items.Add("Cola") nehmen kann ^^

    Und ich habe LRS also bitte keine Kommentare wegen den Rechtschreib fehlern okay...Danke :P
    Hey.

    In ListBoxen (dazu gehört auch die CheckedListBox) kannst du Objekte von jeglichem Typ speichern.
    Das heißt, dass du dir eine Klasse schreiben könntest, die genau dein Problem lösen würde:

    VB.NET-Quellcode

    1. Class Getränk ' musst du natürlich nicht Getränk nennen
    2. Public Property Preis As Decimal
    3. Public Property Name As String
    4. Public Overrides Function ToString() As String ' beim Anzeigen ruft die ListBox ToString() auf und schreibt das in die Liste, was die Funktion zurückgibt. In unserem Fall lediglich den Namen.
    5. Return Name
    6. ' oder das hier, falls du bspw. den Preis in Klammern haben willst
    7. Return String.Format("{0} ({1})", Name, Preis)
    8. End Function
    9. End Class

    Anwendbar wäre das Ganze so:

    VB.NET-Quellcode

    1. CheckedListBox1.Add(New Getränk With { .Name = "Cola", .Preis = 1.50 })
    2. CheckedListBox1.Add(New Getränk With { .Name = "Fanta", .Preis = 1.20 })
    3. CheckedListBox1.Add(New Getränk With { .Name = "Red Bull", .Preis = 9.50 })

    Das Auslesen ginge so:

    VB.NET-Quellcode

    1. Dim EinGetränk As Getränk = DirectCast(CheckedListBox1.SelectedItem, Getränk) ' wir haben Getränke reingespeichert, aber das weiß die ListBox ja nicht, deshalb müssen wir das selbst in die Hand nehmen
    2. Geld -= EinGetränk.Preis ' ich nehme einfach mal an, dass die Variable, in der du das verfügbare Geld gespeichert hast, "Geld" heißt
    3. MessageBox.Show("Du hast " & EinGetränk.Name & " gekauft!")

    Bei weiteren Fragen stehe ich gerne zur Verfügung. :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „haiyyu“ ()