preise der produkte zusammenrechnen

sg0sya.png


Jedes Produkt hat jetzt einen Preis der oben rechts angezeigt wird,aber wie mache ich das jetzt dass unten in der textbox wo gesamt steht alles zusammengerechnet wird ?
 
Ich nehme an dass das Buttons sind in dem Formular.
Erweitere die Buttons um eine Eigenschaft: Preis (decimal) oder verwende die Eigenschaft: Tag, weise dieser die Preise zu, schreib dir einen Klick-Handler für alle Buttons in dem du dann die Preise addierst und in der textbox anzeigst

Anmerkung: Tag ist ein Object type -- also müsstest du erst wieder parsen. Würd ich nicht empfehlen.
 
Zuletzt bearbeitet:
Ich rate dir, die Produkte samt der Preise in ein string oder array zu packen und dann per Split() an die Buttons und später in die RichTextBox zu übergeben!

Zum Beispiel so:

Code:
Public Class Form1

    Public Produkte As New ArrayList()
    Public preis As Double

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

        Produkte.Add("Saft x;1,2")
        Produkte.Add("Saft y;2,4")

        Button1.Text = Split(Produkte(0).ToString, ";")(0)
        Button2.Text = Split(Produkte(1).ToString, ";")(0)

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        RichTextBox1.Text = RichTextBox1.Text & Button1.Text & vbCrLf

        preis = preis + Split(Produkte(0), ";")(1)

        ' ich weiß jetzt nicht soo genau wie man ins EUR Format wechselt^^ gefaked geht's so denke ich
                If preis < 10 Then

            TextBox1.Text = preis.ToString("0.00") & ",- €"

        Else

            TextBox1.Text = preis.ToString("00.00") & ",- €"

        End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        RichTextBox1.Text = RichTextBox1.Text & Button2.Text & vbCrLf

        preis = preis + Split(Produkte(1), ";")(1)

                If preis < 10 Then

            TextBox1.Text = preis.ToString("0.00") & ",- €"

        Else

            TextBox1.Text = preis.ToString("00.00") & ",- €"

        End If

    End Sub
End Class
 
Zuletzt bearbeitet:
Eine ArrayList die ich dann splitten muss und für jeden Button ein eigens Klick - Ereignis mit immer denselben Code? Wenn man mit viel Codezeilen protzen möchte ist das ein wunderbarer Ansatz. Btw. : ich würd mir auch mal die Datentypen double und decimal genauer ansehen...
 
Zuletzt bearbeitet:
Hmm danke erstmal für eure hilfe...aber ich kenn mich irgendwie gerade überhaupt nicht aus )= wie ich das am besten machen soll....bin ein anfänger
MFG
 
Hallo erstmal,

also ich bin C# Entwickler, deswegen weiß ich nicht, obs das auch in VB gibt. (Frage: Gibts in C# und VB .NET die gleichen Klassen und Schlüsselwörter wegen gleichem Framework ?).
Also in C# gibt es einen static Zugriff Modifizierer. Die Variable Existiert sobald sie das erste mal initialisiert ist nur einmal und "schwebt" sozusagen über allem. Dieser könntest du dann die Preise einfach dazu addieren/subtrahieren.

Eleganter (wie ich finde) wäre natürlich wenn du mit Klassen arbeiten würdest.
In c# hingekritzelt:
Code:
class Getraenk
{
    public string Name {get; set;}
    public double Preis {get; set;}
}

Die kannste ja dann einfach den Buttons irgendwie zuordnen und in (vielleicht etwas umständlich) z.B. einer Liste speichern welche du eingekauft hast und dann über die Liste den Preis berechnen.
 
Kann man nicht einfach ne Variable Gesamtpreis machen die dann bei einem klick auf nen button vergrößert wird?

Also dann bei button1.click:

Gesamtpreis = Gesamtpreis + <Preis hier eingeben>
textbox1.Text = Convert.ToString(Gesamtpreis)

Bin mir selbst nicht sicher ob es geht aber ein versuch isses wert.
 

Neue Beiträge

Zurück