Permalänk
Medlem

Hjälp med lite VB, enkelt.

Kör en windows aplication och håller på med en miniräknare med siffror och dylikt.

Nu klistrar jag in all kod. Men det är mkt som är samma

Min tanke är iaf att klickar jag på siffra "1" så kommer den sparas i variablen "first". Sen trycker jag på tex "+" så ändras boolean till true och + kommer in i variabeln "sign". Är boolean true så nästa gång jag trycker på siffra "1" så sparas den i variablen "second" istället.
Sen när jag trycker på "=" körs en if sats som kollar vilken variabel sign har. Har den + som i det här fallet ska den lägga ihop first + second.

Sen får jag fel när jag kör den på:
second = txtBoxResult.Text Conversing from string "1+4" to type "Double" is not valid

Samt: txtBoxResult = first + second Value of type Double cannot be converted to system.windows.forms.textbox
(Dock kan man lösa det genom att skriva ut den i en messagebox.show(" ") istället. )

Public Class Form1

Dim first As Double
Dim second As Double
Dim sign As String
Dim varde As Boolean

Private Sub num1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles num1.Click
'Knapp 1
If varde = False Then
txtBoxResult.Text += num1.Text
first = txtBoxResult.Text
Else
txtBoxResult.Text += num1.Text
second = txtBoxResult.Text
End If
End Sub

Private Sub num0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles num0.Click
'knapp 0
If varde = False Then
txtBoxResult.Text += num1.Text
first = txtBoxResult.Text
Else
txtBoxResult.Text += num1.Text
second = txtBoxResult.Text
End If
End Sub

Private Sub num2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles num2.Click
'knapp 2
If varde = False Then
txtBoxResult.Text += num2.Text
first = txtBoxResult.Text
Else
txtBoxResult.Text += num2.Text
second = txtBoxResult.Text
End If
End Sub

Private Sub num3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles num3.Click
'knapp 3
If varde = False Then
txtBoxResult.Text += num3.Text
first = txtBoxResult.Text
Else
txtBoxResult.Text += num3.Text
second = txtBoxResult.Text
End If
End Sub

Private Sub num4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles num4.Click
'knapp 4
If varde = False Then
txtBoxResult.Text += num4.Text
first = txtBoxResult.Text
Else
End If
End Sub

Private Sub num5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles num5.Click
'knapp 5
If varde = False Then
txtBoxResult.Text += num5.Text
first = txtBoxResult.Text
Else
txtBoxResult.Text += num5.Text
second = txtBoxResult.Text
End If
End Sub

Private Sub num6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles num6.Click
'knapp 6
If varde = False Then
txtBoxResult.Text += num6.Text
first = txtBoxResult.Text
Else
txtBoxResult.Text += num6.Text
second = txtBoxResult.Text
End If
End Sub

Private Sub num7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles num7.Click
'knapp 7
If varde = False Then
txtBoxResult.Text += num7.Text
first = txtBoxResult.Text
Else
txtBoxResult.Text += num7.Text
second = txtBoxResult.Text
End If
End Sub

Private Sub num8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles num8.Click
'knapp 8
If varde = False Then
txtBoxResult.Text += num8.Text
first = txtBoxResult.Text
Else
txtBoxResult.Text += num8.Text
second = txtBoxResult.Text
End If
End Sub

Private Sub num9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles num9.Click
'knapp 9
If varde = False Then
txtBoxResult.Text += num9.Text
first = txtBoxResult.Text
Else
txtBoxResult.Text += num9.Text
second = txtBoxResult.Text
End If
End Sub

Private Sub numAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles numAdd.Click
'knapp +
txtBoxResult.Text = first
varde = True
sign = "+"
txtBoxResult.Text = first & sign
End Sub

Private Sub numSubb_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles numSubb.Click
'knapp -
txtBoxResult.Text = first
varde = True
sign = "-"
txtBoxResult.Text = first & sign
End Sub

Private Sub numMul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles numMul.Click
'knapp *
txtBoxResult.Text = first
varde = True
sign = "*"
txtBoxResult.Text = first & sign
End Sub

Private Sub numDiv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles numDiv.Click
'knapp /
txtBoxResult.Text = first
varde = True
sign = "/"
txtBoxResult.Text = first & sign
End Sub

Private Sub numSum_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles numSum.Click
'knapp =
If sign = "+" Then
txtBoxResult = first + second
ElseIf sign = "-" Then
txtBoxResult = first - second
ElseIf sign = "/" Then
txtBoxResult = first / second
ElseIf sign = "*" Then
txtBoxResult = first * second
End If
End Sub

End Class

Permalänk
Medlem
Skrivet av MB:

Sen får jag fel när jag kör den på:
second = txtBoxResult.Text Conversing from string "1+4" to type "Double" is not valid

Samt: txtBoxResult = first + second Value of type Double cannot be converted to system.windows.forms.textbox
(Dock kan man lösa det genom att skriva ut den i en messagebox.show(" ") istället. )

"second = txtBoxResult.Text"
Eftersom du har en ekvation i din textbox (1+4) så måste du köra en evaluering på detta.
Här finns det exempel på lösningar för matematiska evalueringar från en textsträng:
http://stackoverflow.com/questions/355062/is-there-a-string-m...

"Samt: txtBoxResult = first + second"
txtBoxResult är en TextBox. "first + second" är en matematisk uträkning som resulterar i int/decimal/double...
Du ska skriva: txtBoxResult.Text = (first+second).ToString();

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Tack!

txtBoxResult.Text = (first+second).ToString() _utan_ ; skötte steken!

Var inne på tostring fast var nog utan när jag gjorde det()