Berekenen.

Status
Niet open voor verdere reacties.

Schippertje

Gebruiker
Lid geworden
20 jul 2011
Berichten
64
Goeden dag heren.

Ik heb voor mijn programma een berekening gemaakt.
Die ziet er als volgt uit.

Code:
Private Sub rekenuit1()
        Try
            Dim a As Double = TextBox1.Text
            Dim b As Double = TextBox2.Text
            Dim c As Double = TextBox3.Text
            Dim d As Double = TextBox4.Text
            Dim e As Double = TextBox5.Text
            Dim f As Double = TextBox6.Text
            Dim g As Double = TextBox7.Text
            Dim h As Double = TextBox8.Text
            Dim i As Double = TextBox9.Text
            Dim j As Double = TextBox10.Text
            Dim k As Double = TextBox11.Text
            Dim l As Double = TextBox12.Text
            Dim m As Double = TextBox13.Text
            Dim n As Double = TextBox14.Text
            Dim o As Double = TextBox15.Text
            Dim p As Double = TextBox16.Text
            Dim q As Double = TextBox17.Text
            Dim r As Double = TextBox18.Text
            Dim s As Double = TextBox19.Text
            Dim totaal As Double = a + b + c + d + e + f + g + h + i + j + k + l + m + n +                             o + p + q + r + s
            Label1.Text = FormatNumber(totaal, 2)
        Catch ex As Exception

        End Try
    End Sub

    Private Sub BerekenenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BerekenenToolStripMenuItem.Click
        rekenuit1()
    End Sub

Nou moet ik dus alle textboxen invullen om een uitkomst in mijn label1 te krijgen.
Is er ook een mogelijkheid dat ik niet alle textboxen hoef in te vullen. Dus als ik er dan 2 invul en druk op berekenen (Button), dat ie dan de uitkomst ook gewoon in me label zet, zonder de rest in te hoeven vullen met een 0.
 
Goedemiddag Schippertje

Kan zeker heb een voorbeeldje met textbox1

zet dit in je Formload.

Code:
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = ("0")
    End Sub
 
Bedankt dat werkt.
Alleen nu zie je die 0 ook in de textbox staan en dat is juist wat ik niet wil.
 
Goeden dag heren.

Ik heb voor mijn programma een berekening gemaakt.
Die ziet er als volgt uit.

Code:
Private Sub rekenuit1()
        Try
            Dim a As Double = TextBox1.Text
            Dim b As Double = TextBox2.Text
            Dim c As Double = TextBox3.Text
            Dim d As Double = TextBox4.Text
            Dim e As Double = TextBox5.Text
            Dim f As Double = TextBox6.Text
            Dim g As Double = TextBox7.Text
            Dim h As Double = TextBox8.Text
            Dim i As Double = TextBox9.Text
            Dim j As Double = TextBox10.Text
            Dim k As Double = TextBox11.Text
            Dim l As Double = TextBox12.Text
            Dim m As Double = TextBox13.Text
            Dim n As Double = TextBox14.Text
            Dim o As Double = TextBox15.Text
            Dim p As Double = TextBox16.Text
            Dim q As Double = TextBox17.Text
            Dim r As Double = TextBox18.Text
            Dim s As Double = TextBox19.Text
            Dim totaal As Double = a + b + c + d + e + f + g + h + i + j + k + l + m + n +                             o + p + q + r + s
            Label1.Text = FormatNumber(totaal, 2)
        Catch ex As Exception

        End Try
    End Sub

    Private Sub BerekenenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BerekenenToolStripMenuItem.Click
        rekenuit1()
    End Sub

Nou moet ik dus alle textboxen invullen om een uitkomst in mijn label1 te krijgen.
Is er ook een mogelijkheid dat ik niet alle textboxen hoef in te vullen. Dus als ik er dan 2 invul en druk op berekenen (Button), dat ie dan de uitkomst ook gewoon in me label zet, zonder de rest in te hoeven vullen met een 0.

Dit kan ook , geeft een spatie
Volgens mij rekent hij dan wel

Code:
  TextBox1.Text = (" ")
 
Nee dat werkt niet, dat had ik ook al geprobeerd.
En er niks tussen hebben werkt ook niet.
 
Probeer iets met een check, die kijkt of de textbox leeg is. Voorbeeld:

PHP:
Dim a As Double = 0
If Not string.IsNullOrEmpty(TextBox1.Text) Then a = Convert.ToDouble(TextBox1.Text)
 
Nee dat werkt ook niet.
Laat ik het zo zeggen ik krijg het niet voor elkaar.
Van alles al mee geprobeerd.
 
Wat voor foutmeldingen krijg je? Of krijg je helemaal geen foutmeldingen? Je moet die code wel aanpassen voor elke textbox hea :P
 
Ik krijg helemaal geen foutmeldingen.
Ja ik had het aangepast aan mijn eigen textbox.
 
Ik weet niet wat er bij jou fout gaat, maar als ik het hier in elkaar zet werkt het prima.

fAni3.png


Download hier het project: http://www.mijnbestand.nl/Bestand-UE7IDQFNEK8J.rar

Hier de belangrijke sub:
PHP:
Private Sub RekenUit()
        Dim a As Double = 0
        Dim b As Double = 0
        Dim c As Double = 0
        Dim d As Double = 0
        Dim e As Double = 0
        Dim f As Double = 0
        Dim g As Double = 0
        Dim h As Double = 0
        Dim i As Double = 0
        Dim j As Double = 0
        Dim k As Double = 0
        Dim l As Double = 0
        Dim m As Double = 0
        Dim n As Double = 0
        Dim o As Double = 0
        Dim p As Double = 0
        Dim q As Double = 0
        Dim r As Double = 0
        Dim s As Double = 0
        If Not String.IsNullOrEmpty(TextBox1.Text) Then a = TextBox1.Text
        If Not String.IsNullOrEmpty(TextBox2.Text) Then b = TextBox2.Text
        If Not String.IsNullOrEmpty(TextBox3.Text) Then c = TextBox3.Text
        If Not String.IsNullOrEmpty(TextBox4.Text) Then d = TextBox4.Text
        If Not String.IsNullOrEmpty(TextBox5.Text) Then e = TextBox5.Text
        If Not String.IsNullOrEmpty(TextBox6.Text) Then f = TextBox6.Text
        If Not String.IsNullOrEmpty(TextBox7.Text) Then g = TextBox7.Text
        If Not String.IsNullOrEmpty(TextBox8.Text) Then h = TextBox8.Text
        If Not String.IsNullOrEmpty(TextBox9.Text) Then i = TextBox9.Text
        If Not String.IsNullOrEmpty(TextBox10.Text) Then j = TextBox10.Text
        If Not String.IsNullOrEmpty(TextBox11.Text) Then k = TextBox11.Text
        If Not String.IsNullOrEmpty(TextBox12.Text) Then l = TextBox12.Text
        If Not String.IsNullOrEmpty(TextBox13.Text) Then m = TextBox13.Text
        If Not String.IsNullOrEmpty(TextBox14.Text) Then n = TextBox14.Text
        If Not String.IsNullOrEmpty(TextBox15.Text) Then o = TextBox15.Text
        If Not String.IsNullOrEmpty(TextBox16.Text) Then p = TextBox16.Text
        If Not String.IsNullOrEmpty(TextBox17.Text) Then q = TextBox17.Text
        If Not String.IsNullOrEmpty(TextBox18.Text) Then r = TextBox18.Text
        If Not String.IsNullOrEmpty(TextBox19.Text) Then s = TextBox19.Text

        Dim Totaal As Double = a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s
        Label1.Text = Totaal
    End Sub

Beetje omslachtig allemaal maar het werkt ^^
 
Ja super het werkt wel.
Ik had het verkeerd gedaan, ik had mijn berekeningen er ook nog in staan.
Had het er bij geplakt.
Bedankt voor de hulp:thumb:. En Schipperjte natuurlijk ook:thumb:
 
Mocht je denken 'die oplossing is veels te veel code' dan is hier nog een oplossing, deze checkt voor elke textbox op je form en telt de inhoud bij een nieuwe variabele op.

PHP:
    Private Sub RekenUit2()
        Dim Resultaat As Double = 0
        For Each c As Control In Me.Controls
            If TypeOf c Is TextBox Then
                If Not String.IsNullOrEmpty(DirectCast(c, TextBox).Text) Then Resultaat += CDbl(DirectCast(c, TextBox).Text)
            End If
        Next

        Label1.Text = Resultaat
    End Sub

Als je denkt "da's niet mogelijk want er staan nog veel meer textboxen op m'n form" dan is er deze oplossing voor. Geef eerst alle textboxen die je opgetelt wilt hebben de tag "CaptainBri" en gebruik dan deze code. Deze code checkt of de tag van de textbox "CaptainBri" is, zoja dan telt hij 'm erbij op.

PHP:
    Private Sub RekenUit3()
        Dim Resultaat As Double = 0
        For Each c As Control In Me.Controls
            If TypeOf c Is TextBox Then
                If c.Tag = "CaptainBri" Then
                    If Not String.IsNullOrEmpty(DirectCast(c, TextBox).Text) Then Resultaat += CDbl(DirectCast(c, TextBox).Text)
                End If
            End If
        Next

        Label1.Text = Resultaat
    End Sub

Je kan de tag nog aanpassen, ik ga ervan uit dat je weet hoe je dat moet doen na dit voorbeeld te hebben gezien ;)

Have fun ^^
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan