0ボタンの追加
数字1ボタン、数字2ボタン、数字3ボタン、+ボタン、Cボタン、=ボタンのみを使った簡易電卓プログラムに、数字0ボタンを追加して、数字0ボタンクリック処理のプログラムを作成します。
数字0ボタンクリック処理は、数字1ボタン~数字3ボタンのクリック処理と少し違うので、注意してください。
数字0ボタンのプロパティ設定値とボタンクリック処理の概要
コントロール | プロパティ | 設定値 | BtnZeroクリック処理 |
---|---|---|---|
BtnZero | Text | 0 | LblAnserが0なら、そのまま0を表示 それ以外は、末尾に0を追加表示 |
簡易電卓の仕様と、これまでに作成したプログラムはこちら。
数字0ボタンクリック処理プログラム
数字0ボタンをダブルクリックして、0ボタンクリック処理のプログラムを記述します。
BtnZeroボタンクリック処理を、これまでの数字1~3と同じようにプログラミングすると、0を表示しているときに、連続で0を入力すると、00000のような表示になってしまいます。これを0と表示したままになるように修正します。
- まず、直前に押されたボタンが数字なら(If beforeIn >= "0" And beforeIn <= "3" Then)の後に、他の数字ボタンと同じように、LblAnserのTextプロパティの末尾に"0"を追加します。
- さらに入力数値の桁数が8桁になったら、それ以上は追加しないように、最後にbeforeIn変数に"0"を保存するようにプログラミングします。
- 前回押されたボタンが数字以外なら(Else)の後に、LblAnser.Text = "0"とプログラムすれば、連続0の表示を防ぐことができます。
- beforeIn変数に "0" を代入しなければ、beforeIn変数には、数字以外(C, +, -, =)が入っており、常に0が表示されます。
' 数字0ボタンクリック処理 Private Sub BtnZero_Click(sender As Object, e As EventArgs) Handles BtnZero.Click If beforeIn >= "0" And beforeIn <= "3" Then If LblAnser.Text.Length < 8 Then LblAnser.Text &= "0" End If beforeIn = "0" Else LblAnser.Text = "0" End If End Sub
BtnOne、BtnTwo、BtnThree、BtnPlus、BtnEqualのクリック処理の
If beforeIn >= "1" And beforeIn <= "3" Then
の判定文を、0を含めて判定できるように
If beforeIn >= "0" And beforeIn <= "3" Then
と修正します。
BtnTwoボタンクリック処理を修正すると次のようになります。他のボタンのクリック処理も同様に修正します。
' 数字2ボタンクリック処理 Private Sub BtnTwo_Click(sender As Object, e As EventArgs) Handles BtnTwo.Click If beforeIn >= "0" 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
これで数字0ボタンを追加した簡単電卓プログラムを実行して動作を確認してみてください。特に、0の表示が正しく表示されることを確認してください。