Zwei TextBoxen addieren

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von mikeb69.

    Zwei TextBoxen addieren

    Hallo !
    Ich habe schonb viel gegooglet aber nicht richtig was gefunden...
    Also habe drei TextBoxen mit Zahlen drin und will einfach das das Ergebniss wen man die Zahlen in den TextBoxen zusammennimmt in einem Label steht.
    MrYannis

    VB.NET-Quellcode

    1. Label1.text = TextBox1.text + TextBox2.text + TextBox2.text


    oder (der Schönhei wegen)

    VB.NET-Quellcode

    1. Label1.text = Val(TextBox1.text) + Val(TextBox2.text) +Val(TextBox2.text)


    Könntest das ganze noch mit IsNummeric ausbauen oder eine MaskedtextBox nehmen
    Je nachdem, wie du es genau vorhast:
    Entweder im TextChanged-Event der Textboxen oder in einem Button-Click die Werte der Textboxen prüfen, konvertieren, rechnen und ins Label schreiben.
    @Memo
    Auf das Ergebnis bin ich gespannt, wenn er bei deiner Version in eine der Textboxen nichts oder ein nicht numerisches Zeichen eingibt. ;)
    Am besten gleich mit Option Strict On arbeiten, damit son Mist gleich unterstrichen wird.
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Textboxen und Label haben beide die Eigenschaft Text welche den Text enthält oder worüber sich dieser setzen lässt.

    Einfach den Wert aus jeder Textbox nehmen, zu einem benötigten Zahlentyp(z.B. Integer=Ganzzahlen, Double= Fließkommazahlen) konvertieren, addieren und die Text-Eigenschaft von dem Label auf den errechneten Wert setzen.

    Vielleicht solltest du dich mal mit den Grundlagen beschäftigen und mal ein Buch lesen?
    Im Hauptforum ist ein Thema mit guten Einsteiger-Lernquellen angepinnt.

    EDIT:Viel zu spät... ;)

    Vatter schrieb:

    Auf das Ergebnis bin ich gespannt, wenn er bei deiner Version in eine der Textboxen nichts oder ein nicht numerisches Zeichen eingibt.

    1. Gibts für sowas tryParse
    2. Gibts NumericUpDown wenn man eh nur Zahlen erlauben will
    3. Ist das ein (etwas längerer) Einzeiler:

    VB.NET-Quellcode

    1. Dim r As Double = IIf(Double.TryParse(TextBox1.Text, r), r, 0) + _
    2. IIf(Double.TryParse(TextBox2.Text, r), r, 0) + _
    3. IIf(Double.TryParse(TextBox3.Text, r), r, 0)

    sieht zwar etwas "hackig" aus, ist aber durchaus erlaubt.
    Hay,
    Wieso immer so komplitziert?!

    Code Edit:

    VB.NET-Quellcode

    1. Label1.Text = CInt(TextBox1.Text) + CInt(TextBox2.Text)


    @ Gugi ,

    MrYannis schrieb:

    Also habe drei TextBoxen mit Zahlen drin


    da siehst du er will nur Zahlen addieren.



    Mfg Kevin.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Gutelaunetyp“ ()

    Gutelaunetyp schrieb:

    Hay,
    Wieso immer so komplitziert?!


    VB.NET-Quellcode

    1. Dim Add As Integer = TextBox1.Text
    2. Dim Add2 As Integer = TextBox2.Text
    3. Label1.Text = Add + Add2




    Mfg Kevin.

    mhm und wenn ein buchstabe kommt dann ist error ;)
    meine variante:

    VB.NET-Quellcode

    1. Private Sub TextBox1_KeyPress(ByVal sender As Object, _
    2. ByVal e As System.Windows.Forms.KeyPressEventArgs) _
    3. Handles TextBox1.KeyPress
    4. If Not "1234567890".Contains(e.KeyChar) And Not (e.KeyChar = Chr(8)) Then
    5. e.Handled = True
    6. End If
    7. End Sub
    8. Private Sub TextBox2_KeyPress(ByVal sender As Object, _
    9. ByVal e As System.Windows.Forms.KeyPressEventArgs) _
    10. Handles TextBox2.KeyPress
    11. If Not "1234567890".Contains(e.KeyChar) And Not (e.KeyChar = Chr(8)) Then
    12. e.Handled = True
    13. End If
    14. End Sub

    und zum rechnen:

    VB.NET-Quellcode

    1. Dim Add As Integer = TextBox1.Text
    2. Dim Add2 As Integer = TextBox2.Text
    3. Label1.Text = val8Add) + val(Add2)


    mfg Gugi
    @Memo Exceptions zu benutzen ist natürlich immer möglich, gilt aber normalerweise als schlechter Programmierstil. Schliesslich ist der interne Aufwand für das Exception Handling ziemlich hoch, daher sollte man es einfacher mit TryParse lösen.
    außerdem sollte man Exceptions, wenn überhaupt nur auf oberster Ebene abfangen, da Exceptions Allgemein das gesamte Programm verlangsamen ;)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    LOL
    -MaskedTextBox mit Format nur Ziffern (Konstante "0")
    -NumericUpDown

    an Sonsten hat Picoflop schon den Code gepostet.

    @Gugi:
    Ich wusste nicht, dass man sowas triviales überhaupt so kompliziert (und langsam) schreiben kann und das auch noch allen ernstes veröffentlicht...