Delete button gaat door & prijzen veranderen

Status
Niet open voor verdere reacties.

vuuvje

Gebruiker
Lid geworden
21 dec 2007
Berichten
18
Ik heb twee problemen:

  • Het verwijderen van items gaat door, zelfs als de lijst leeg is. Hoe voorkom ik dit?
  • Hoe zorg ik ervoor dat de prijzen veranderen als je op incl. BTW klikt of excl. BTW?

Code:
Public Class Boodschappenlijst
    ' Gegevens
    Dim artikel As Integer
    Dim aantal As Integer
    Dim prijs As Double
    Dim totaalbedrag As Double = 0

    Private Sub Boodschappenlijst_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ' Artikelen invoeren
        cbArtikel.Items.Insert(0, "Hagelslag")
        cbArtikel.SelectedItem = "Hagelslag"
        cbArtikel.Items.Insert(1, "Pindakaas")
        cbArtikel.Items.Insert(2, "Jam")
        cbArtikel.Items.Insert(3, "Zalmsalade")

        cbAantal.Items.Insert(0, "1")
        cbAantal.SelectedItem = "1"
        cbAantal.Items.Insert(1, "2")
        cbAantal.Items.Insert(2, "3")
        cbAantal.Items.Insert(3, "4")
        cbAantal.Items.Insert(4, "5")

        ' Bullet alvast aanvinken
        rbtnInBTW.Checked = True

        ' Prijs toekennen aan artikelen
        If rbtnInBTW.Checked = True Then
            If cbArtikel.SelectedItem = "Hagelslag" Then
                prijs = 1.75
            ElseIf cbArtikel.SelectedItem = "Pindakaas" Then
                prijs = 2.32
            ElseIf cbArtikel.SelectedItem = "Jam" Then
                prijs = 1.62
            ElseIf cbArtikel.SelectedItem = "Zalmsalade" Then
                prijs = 3.12
            End If
        Else
            If cbArtikel.SelectedItem = "Hagelslag" Then
                prijs = 1.47
            ElseIf cbArtikel.SelectedItem = "Pindakaas" Then
                prijs = 1.95
            ElseIf cbArtikel.SelectedItem = "Jam" Then
                prijs = 1.36
            ElseIf cbArtikel.SelectedItem = "Zalmsalade" Then
                prijs = 2.62
            End If
        End If

    End Sub
    Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click

        ' Artikelen en prijs toevoegen aan listbox
        lstBoodschappen.Items.Add(cbAantal.SelectedItem & " " & cbArtikel.SelectedItem & " € " & cbAantal.SelectedItem * prijs)

        totaalbedrag = totaalbedrag + cbAantal.SelectedItem * prijs

        txtTotaalbedrag.Text = "€ " & totaalbedrag
    End Sub

    Private Sub btnVerwijderen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVerwijderen.Click

        ' Artikelen en prijs verwijderen van listbox
        lstBoodschappen.Items.Remove(lstBoodschappen.SelectedItem)

        totaalbedrag = totaalbedrag - cbAantal.SelectedItem * prijs
        txtTotaalbedrag.Text = "€ " & totaalbedrag
    End Sub
End Class
 
Hoe bedoel je 'verwijderen gaat door'?

en voor het veranderen van de prijs, ik denk dat je bedoelt in je combolist?

op de manier dat jij je code opgemaakt hebt zal dit heel mogelijk gaan. Je zal moeten 1 voor 1 je combolijst overlopen, daarin per regel zoeken naar het euro-teken, alles erna selecteren, omzetten naar een bedrag, delen of maal, vervangen en dan ben je er.

Makkelijker zou zijn om 2 lijsten te maken: 1 voor de naam en 1 voor de prijs, die kan je dan eventueel verbinden dat, als je in de ene lijst iets selecteert, dat ook in de andere geselecteerd wordt en is véél makkelijker om mee te werken.
 
nou als je alle artikelen hebt verwijderd en op totaal dus €0 zit
en toch nog eens op de verwijder-button drukt, gaat hij in de min.. hij haalt het bedrag van artikel 0 eraf, 1.75 dus..

tnx voor die tip,, ik zal ernaar kijken!
 
gewoon een testje op steken voor dat verwijderen:

als het nul is kan je dan de lijn "exit sub" gebruiken om de code over te slaan :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan