機能ボタンクリック処理
数字1ボタン、数字2ボタン、数字3ボタン、+ボタン、Cボタン、=ボタンのみを使った簡易電卓プログラムの +ボタン、=ボタン、Cボタンのクリック処理プログラムを作成します。
サンプルプログラム
+ボタンがクリックされた時は、前回クリックされたボタンにより、表示結果が異なります。
- 前回押されたボタンが数字ならば、前回の数字が初回入力数字(opeに"C"が保存されている)ならば、現在表示中の数字をそのまま表示します。
- 前回押されたボタンが数字以外ならば、それまでの計算結果に、今回入力した数値を加算し、その結果を表示します。
- Textプロパティは文字列なので、演算するときは、CInt関数で整数に変換する必要があります。変換してnum変数に保存しておきます。
- num = CInt(LblAnser.Text)
- 前回押されたのが数字以外ならば、クリックされたボタンに応じた演算をします。演算は、Windowsアクセサリーの電卓と同様な結果になるようにしました。
' +ボタンクリック処理 Private Sub BtnPlus_Click(sender As Object, e As EventArgs) Handles BtnPlus.Click If beforeIn >= "1" And beforeIn <= "3" Then If ope = "C" Then ' 最初の入力数値をansに保管 ans = CInt(LblAnser.Text) Else ' ansに保管されている ' +ボタンクリック前の数値と加算 num = CInt(LblAnser.Text) ans = ans + num LblAnser.Text = ans End If Else ' 前回クリックが数字以外の時 Select Case ope Case "C" ' 前回がクリアボタン ans = CInt(LblAnser.Text) Case "=" ' 前回がイコールボタン ans = ans + num Case "+" num = ans End Select End If beforeIn = "+" ope = "+" End Sub
=ボタンがクリックされた時は、前回クリックされたボタンが数字ならば、今回入力の数字を整数に変換します。
- それまでの計算結果と今回入力した数値を使って、直前にクリックされた演算ボタンの計算を実行します。演算ボタンの値はope変数に保存されています。
- このプログラムでは、足し算ボタンしかないので足し算を実行することになります。
- beforeIn = "C"として、新たな演算に備えます。
- ただし、現在保存中の値はそのまま使うので、初期値には戻しません。
' =ボタンクリック処理 Private Sub BtnEqual_Click(sender As Object, e As EventArgs) Handles BtnEqual.Click If beforeIn >= "1" And beforeIn <= "3" Then num = CInt(LblAnser.Text) End If ' 演算子を判定して処理を振分 Select Case ope Case "+" ans = ans + num Case "-" ' 今回は省略 Case "*" ' 今回は省略 Case "/" ' 今回は省略 End Select LblAnser.Text = ans beforeIn = "C" End Sub
C(クリア)ボタンを押した時は、電卓を初期状態に戻します。
' Cボタンクリック処理 Private Sub BtnClear_Click(sender As Object, e As EventArgs) Handles BtnClear.Click ans = 0 num = 0 beforeIn = "C" ope = "C" LblAnser.Text = "0" End Sub