単純な計算ができる電卓を練習で作ろうと試みているのですがわけがわからなくなりました。
足し算の段階でつまずいており、最初に入力した数値をope,二番目に入力した数値をnum,答えをansにしたつもりでしたが、計算してくれないのですがどこからやり直すべきでしょうか。
Partial Class Form1
Public Property BeforeIn As String
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged On Error Resume Next '----------<< 変数宣言 >>---------- ' 今回押されたボタンの数字以外の値を保存する変数 Dim ope() As Integer = Nothing ' 今回押されたボタンの値を保存する変数 Dim beforeIn As Integer = "AC" ' 演算結果を保存する変数 Dim ans As Long = 0 ' 今回入力された数値を保存する変数 Dim num As Long = 0 End Sub Private Sub Button0_Click(sender As Object, e As EventArgs) Handles Button0.Click If BeforeIn >= "0" And BeforeIn <= "9" Then ' 直前の押されたのが数字ボタンのとき ' かつ、9桁未満の数値が入力されているとき If TextBox1.Text.Length < 9 Then TextBox1.Text &= "0" End If Else ' 直前の押されたのが数字以外のボタンのとき TextBox1.Text = "0" End If BeforeIn = "0" End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If BeforeIn >= "0" And BeforeIn <= "9" Then ' 直前の押されたのが数字ボタンのとき ' かつ、9桁未満の数値が入力されているとき If TextBox1.Text.Length < 9 Then TextBox1.Text &= "1" End If Else ' 直前の押されたのが数字以外のボタンのとき TextBox1.Text = "1" End If BeforeIn = "1" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click If BeforeIn >= "0" And BeforeIn <= "9" Then ' 直前の押されたのが数字ボタンのとき ' かつ、9桁未満の数値が入力されているとき If TextBox1.Text.Length < 9 Then TextBox1.Text &= "2" End If Else ' 直前の押されたのが数字以外のボタンのとき TextBox1.Text = "2" End If BeforeIn = "2" End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click If BeforeIn >= "0" And BeforeIn <= "9" Then ' 直前の押されたのが数字ボタンのとき ' かつ、9桁未満の数値が入力されているとき If TextBox1.Text.Length < 9 Then TextBox1.Text &= "3" End If Else ' 直前の押されたのが数字以外のボタンのとき TextBox1.Text = "3" End If BeforeIn = "3" End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click If BeforeIn >= "0" And BeforeIn <= "9" Then ' 直前の押されたのが数字ボタンのとき ' かつ、9桁未満の数値が入力されているとき If TextBox1.Text.Length < 9 Then TextBox1.Text &= "4" End If Else ' 直前の押されたのが数字以外のボタンのとき TextBox1.Text = "4" End If BeforeIn = "4" End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click If BeforeIn >= "0" And BeforeIn <= "9" Then ' 直前の押されたのが数字ボタンのとき ' かつ、9桁未満の数値が入力されているとき If TextBox1.Text.Length < 9 Then TextBox1.Text &= "5" End If Else ' 直前の押されたのが数字以外のボタンのとき TextBox1.Text = "5" End If BeforeIn = "5" End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click If BeforeIn >= "0" And BeforeIn <= "9" Then ' 直前の押されたのが数字ボタンのとき ' かつ、9桁未満の数値が入力されているとき If TextBox1.Text.Length < 9 Then TextBox1.Text &= "6" End If Else ' 直前の押されたのが数字以外のボタンのとき TextBox1.Text = "6" End If BeforeIn = "6" End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click If BeforeIn >= "0" And BeforeIn <= "9" Then ' 直前の押されたのが数字ボタンのとき ' かつ、9桁未満の数値が入力されているとき If TextBox1.Text.Length < 9 Then TextBox1.Text &= "7" End If Else ' 直前の押されたのが数字以外のボタンのとき TextBox1.Text = "7" End If BeforeIn = "7" End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click If BeforeIn >= "0" And BeforeIn <= "9" Then ' 直前の押されたのが数字ボタンのとき ' かつ、9桁未満の数値が入力されているとき If TextBox1.Text.Length < 9 Then TextBox1.Text &= "8" End If Else ' 直前の押されたのが数字以外のボタンのとき TextBox1.Text = "8" End If BeforeIn = "8" End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click If BeforeIn >= "0" And BeforeIn <= "9" Then ' 直前の押されたのが数字ボタンのとき ' かつ、9桁未満の数値が入力されているとき If TextBox1.Text.Length < 9 Then TextBox1.Text &= "9" End If Else ' 直前の押されたのが数字以外のボタンのとき TextBox1.Text = "9" End If BeforeIn = "9" End Sub Private Sub Clear_Click(sender As Object, e As EventArgs) Handles Clear.Click TextBox1.Text = "" End Sub Private Sub Puls_Click(sender As Object, e As EventArgs) Handles Puls.Click ' +ボタンクリック処理 Dim ope As String Dim ans As String Dim num As String If BeforeIn >= "0" And BeforeIn <= "9" Then ' 最初の入力数値をopeに保管 ope = CInt(TextBox1.Text) Else ' opeに保管されている ' +ボタンクリック前の数値と加算 num = CInt(TextBox1.Text) ans = CInt(TextBox1.Text) ans = ope + num TextBox1.Text = ans End If BeforeIn = "+" End Sub Private Sub kotae_Click(sender As Object, e As EventArgs) Handles kotae.Click ' =ボタンクリック処理 Dim ope As String Dim ans As String Dim num As String If BeforeIn >= "0" And BeforeIn <= "9" Then ans = CInt(TextBox1.Text) End If ' 演算子を判定して処理を振分 Select Case ans Case "+" ans = ope + num Case "" ans = ope - num Case "*" ans = ope * num Case "/" ans = ope / num End Select TextBox1.Text = ans End Sub
End Class
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。