• ベストアンサー

VB 電卓 数字キーを押して ラベルに出力

VB.NET 2005では、 VB.NETにはコントロール配列は存在しないらしいので、それに類似した処理をどう行うかを教えていただきたいのです。 電卓の数字0~9までのボタンをクリックした時 どうすればよいのでしょうか? 作成中のコードです。 Option Explicit On Public Class frmMain Dim dData1 As Double, dData2 As Double '数値記憶用 Dim SuuFlag As Boolean '数字キー用 Dim EFlag As Boolean '演算キー用 Dim Enzan As Integer '演算種類記憶用(+:0,-:1,*:2,/:3,4:=) Const NONE = -1 Const TASU = 0 Const HIKU = 1 Const KAKERU = 2 Const WARU = 3 Const EQU = 4 Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load dData1 = 0 '数値記憶用変数の初期化 dData2 = 0 Enzan = NONE '演算種類初期値 SuuFlag = False EFlag = False End Sub Private Sub cmd_Click(ByVal Index As Integer) '0が1文字だけ、または、演算キーを押した後の時 If txtDisplay.Text = "0" Or SuuFlag = False Then txtDisplay.Text = "" '0を消す dData2 = 0 End If If Index <= 9 Then '0 - 9 数字 txtDisplay.Text = txtDisplay.Text & Trim(Str(Index)) ElseIf Index = 10 Then '.小数点 If txtDisplay.Text = "" Then '最初が小数点 txtDisplay.Text = "0." ElseIf InStr(txtDisplay.Text, ".") = 0 Then '小数点無し txtDisplay.Text = txtDisplay.Text & "." End If End If SuuFlag = True End Sub End Class 数字のオブジェクト名は 1=cmd1 2=cmd2 3=cmd3 0=cmd0 ~といった感じです。 この先、数字を表示させるには いったいどうすればよいのでしょうか。 大変申し訳ないのですが、回答お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんにちは テキストボックスに入力した数値を表示させることに絞って回答します。unamana19さんが提案したTagプロパティを使用した場合です。 各数値ボタンのTagプロパティは以下のようにします。 もちろん表示用テキストボックスのTextAlignは右寄せに設定します。  cmd1のTagに1を設定する  cmd5のTagに5を設定する ... コマンドボタンがクリックされた時のイベントプロシージャに  txtDisplay.Text &= sender.Tag  txtDisplay.Text = Microsoft.VisualBasic.Val(txtDisplay.Text) これでどうでしょうか

very-dou
質問者

お礼

ありがとうございます。 ようやく理解することができました。 次は、四則演算です。。。 がんばってみます^^

その他の回答 (1)

  • unamana19
  • ベストアンサー率62% (56/89)
回答No.1

「電卓の数字0~9までのボタンをクリックした時」 は、実装できましたか? 質問を絞ったほうがいいと思います。

very-dou
質問者

お礼

unamana19さま、何度もすみませんでした。 tagを入力するということがよくわからなかったのですが、 ようやく理解することができました。 とりあえず、数字をクリックすると ディスプレイに表示することができました。 ありがとうございました。

very-dou
質問者

補足

回答あいがとうございます。 申し訳ございません。 数字をクリックしても、数字がテキストボックスに 出力されない状態です。

関連するQ&A

専門家に質問してみよう