
前提・実現したいこと
VB.NETで簡単な電卓を作ろうとしています。
変数Num()の値がイベント発生のつど0になってしまい、
何が原因なのかわからないため教えていただきたいです。
発生している問題・エラーメッセージ
イベント(ボタン押下)のタイミングで変数Numの値が0になる。 ※初心者の練習ということで内容がひどいですが、 一端上記の内容だけアドバイスいただけると助かります。
該当のソースコード
VB.NET
1Public Class calculator 2 Inherits System.Web.UI.Page 3 Public Num As Long '数字を格納 4 5 Protected Sub BtnCancel_Click(sender As Object, e As EventArgs) Handles BtnCancel.Click 6 7 LblSym.Text = "" 8 LblAnswer.Text = "" 9 10 End Sub 11 12 Protected Sub BtnReverse_Click(sender As Object, e As EventArgs) Handles BtnReverse.Click 13 LblAnswer.Text = Int(LblAnswer.Text) * -1 14 15 End Sub 16 17 Protected Sub BtnPercent_Click(sender As Object, e As EventArgs) Handles BtnPercent.Click 18 LblAnswer.Text = Int(LblAnswer.Text) / 100 19 End Sub 20 21 Protected Sub BtnSeven_Click(sender As Object, e As EventArgs) Handles BtnSeven.Click 22 LblAnswer.Text = LblAnswer.Text & BtnSeven.Text 23 End Sub 24 25 Protected Sub BtnEight_Click(sender As Object, e As EventArgs) Handles BtnEight.Click 26 LblAnswer.Text = LblAnswer.Text & BtnEight.Text 27 End Sub 28 29 Protected Sub BtnNine_Click(sender As Object, e As EventArgs) Handles BtnNine.Click 30 LblAnswer.Text = LblAnswer.Text & BtnNine.Text 31 End Sub 32 Protected Sub BtnMultiplication_Click(sender As Object, e As EventArgs) Handles BtnMultiplication.Click 33 If LblSym.Text = "" Then 34 Num = Int(LblAnswer.Text) 35 LblSym.Text = "×" 36 LblAnswer.Text = "" 37 Else 38 LblAnswer.Text = Int(LblAnswer.Text) * Num 39 LblSym.Text = "" 40 End If 41 End Sub 42 43 Protected Sub BtnSix_Click(sender As Object, e As EventArgs) Handles BtnSix.Click 44 LblAnswer.Text = LblAnswer.Text & BtnSix.Text 45 End Sub 46 47 Protected Sub BtnFive_Click(sender As Object, e As EventArgs) Handles BtnFive.Click 48 LblAnswer.Text = LblAnswer.Text & BtnFive.Text 49 End Sub 50 51 Protected Sub BtnOne_Click(sender As Object, e As EventArgs) Handles BtnOne.Click 52 LblAnswer.Text = LblAnswer.Text & BtnOne.Text 53 End Sub 54 55 Protected Sub BtnTwo_Click(sender As Object, e As EventArgs) Handles BtnTwo.Click 56 LblAnswer.Text = LblAnswer.Text & BtnTwo.Text 57 End Sub 58 59 Protected Sub BtnThree_Click(sender As Object, e As EventArgs) Handles BtnThree.Click 60 LblAnswer.Text = LblAnswer.Text & BtnThree.Text 61 End Sub 62 63 Protected Sub BtnPlus_Click(sender As Object, e As EventArgs) Handles BtnPlus.Click 64 If LblSym.Text = "" Then 65 Num = Int(LblAnswer.Text) 66 LblSym.Text = "+" 67 Else 68 LblAnswer.Text = Int(LblAnswer.Text) + Num 69 LblSym.Text = "" 70 71 End If 72 End Sub 73 74 Protected Sub BtnZero_Click(sender As Object, e As EventArgs) Handles BtnZero.Click 75 If LblAnswer.Text <> "0" Then 76 LblAnswer.Text = LblAnswer.Text & BtnZero.Text 77 End If 78 End Sub 79 80 Protected Sub BtnDecimal_Click(sender As Object, e As EventArgs) Handles BtnDecimal.Click 81 If LblAnswer.Text <> 0 Then 82 LblAnswer.Text = LblAnswer.Text & "." 83 End If 84 End Sub 85 86 Protected Sub BtnEqual_Click(sender As Object, e As EventArgs) Handles BtnEqual.Click 87 If LblSym.Text = "" Then 88 Exit Sub 89 End If 90 91 If LblSym.Text = "+" Then 92 LblAnswer.Text = Num + Int(LblAnswer.Text) 93 ElseIf LblSym.Text = "-" Then 94 LblAnswer.Text = Num - Int(LblAnswer.Text) 95 ElseIf LblSym.Text = "×" Then 96 LblAnswer.Text = Num * Int(LblAnswer.Text) 97 ElseIf LblSym.Text = "÷" Then 98 LblAnswer.Text = Num / Int(LblAnswer.Text) 99 End If 100 101 LblSym.Text = "" 102 End Sub 103 104 Protected Sub BtnFour_Click(sender As Object, e As EventArgs) Handles BtnFour.Click 105 LblAnswer.Text = LblAnswer.Text & BtnFour.Text 106 End Sub 107 108 Protected Sub BtnDivision_Click(sender As Object, e As EventArgs) Handles BtnDivision.Click 109 If LblSym.Text = "" Then 110 Num = Int(LblAnswer.Text) 111 LblSym.Text = "÷" 112 Else 113 LblAnswer.Text = Num / Int(LblAnswer.Text) 114 LblSym.Text = "" 115 116 End If 117 End Sub 118 119 Protected Sub BtnMinus_Click(sender As Object, e As EventArgs) Handles BtnMinus.Click 120 If LblSym.Text = "" Then 121 Num = Int(LblAnswer.Text) 122 LblSym.Text = "-" 123 Else 124 LblAnswer.Text = Int(LblAnswer.Text) - Num 125 LblSym.Text = "" 126 127 End If 128 End Sub 129End Class 130
試したこと
変数の位置の変更など
補足情報(FW/ツールのバージョンなど)
VisualStudio2015

何を作っているか(Windows Forms? ASP.NET Web Forms? その他?)と開発環境(OS, .NET のバージョン、プロジェクト作成に使ったテンプレートは何かなど)を書きましょう。
Inherits System.Web.UI.Page となってますが、ASP.NET Web Forms アプリですか?
「イベント(ボタン押下)のタイミングで変数Numの値が0になる。」というのはどのボタンのことを言ってますか?
実際に、変数Numの値が0であるということを、どのようにして確認しましたか?
あと、本題とは関係ないのですが、乗算ボタン(×)押下時と、その他の四則演算ボタン押下時とで、処理が若干異なるようです。
(確認してはいませんが、例えば12+3を行おうとすると、+ボタンでLblAnswer.Textの内容がクリアされていないので、演算結果が12+123になってしまう?)

回答2件
あなたの回答
tips
プレビュー