数字ボタンクリック処理
数字1ボタン、数字2ボタン、数字3ボタン、+ボタン、Cボタン、=ボタンのみを使った簡易電卓プログラムのうち、数字1ボタン、数字2ボタン、数字3ボタンのクリック処理を作成します。
サンプルプログラム
まず、変数(わかりやすい変数名にすること)を宣言して、初期値を設定する。プログラム実行時の電卓には、0と表示されるようにします。これはクリアボタンをクリックした直後の状態と同じです。
フォームクラスに Private変数を次のように宣言します。Private変数にすると、各Sub関数内からいつでも変数を見たり、変更することができます。
'////////// 整数加算の簡単電卓画面クラス ////////// Public Class Form1 '----------<< 変数宣言 >>---------- ' 今回押されたボタンの数字以外の値(+,=,C)を保存する変数 Private ope As String = Nothing ' 今回押されたボタンの値(1,2,3,+,=,C)を保存する変数 Private beforeIn As String = "C" ' 演算結果を保存する変数 Private ans As Long = 0 ' 今回入力された数値を保存する変数 Private num As Long = 0 .....(以下省略).....
次に、フォームの 数字1ボタン(BtnOne)をダブルクリックして、BtnOneボタンのクリック処理を記述します。
- BtnOneのクリック処理は、直前に押されたボタンが数字なら、LblAnserのTextプロパティの末尾に、"1"を追加します。LblAnser.Text &= "1"(LblAnser.Text = LblAnser.Text & "1" と記述しても同じ)とします。
- ただし、入力数値の桁数が8桁になったら、それ以上は追加しません。
- 直前に押されたボタンが数字以外なら、LblAnserのTextプロパティに、"1"を代入します。
- 今回押されたボタンが何なのか分かるように、beforeIn = "1"で、beforeIn変数に入力値を保存しておきます。beforeIn変数の値を調べることにより、数字入力中か否かを判定して、LblAnserに表示する文字列を生成していきます。
' 数字1ボタンクリック処理 Private Sub BtnOne_Click(sender As Object, e As EventArgs) Handles BtnOne.Click If beforeIn >= "1" And beforeIn <= "3" Then ' 直前の押されたのが数字ボタンのとき ' かつ、8桁未満の数値が入力されているとき If LblAnser.Text.Length < 8 Then LblAnser.Text &= "1" End If Else ' 直前の押されたのが数字以外のボタンのとき LblAnser.Text = "1" End If beforeIn = "1" End Sub
同様に、BtnTwoボタンのクリック処理を作成します。
' 数字2ボタンクリック処理 Private Sub BtnTwo_Click(sender As Object, e As EventArgs) Handles BtnTwo.Click If beforeIn >= "1" And beforeIn <= "3" Then If LblAnser.Text.Length < 8 Then LblAnser.Text &= "2" End If Else LblAnser.Text = "2" End If beforeIn = "2" End Sub
BtnThreeボタンのクリック処理も同様に作成します。
' 数字3ボタンクリック処理 Private Sub BtnThree_Click(sender As Object, e As EventArgs) Handles BtnThree.Click If beforeIn >= "1" And beforeIn <= "3" Then If LblAnser.Text.Length < 8 Then LblAnser.Text &= "3" End If Else LblAnser.Text = "3" End If beforeIn = "3" End Sub