アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB.NETでの質問です。
電卓の数字0~9までのボタンをクリックした時
ラベルに表示されません。
作成したコードは
Private Sub cmd_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _
Handles cmd1.Click, cmd2.Click, cmd3.Click, _
cmd4.Click,cmd5.Click, cmd6.Click, _
cmd.Click, cmd8.Click,cmd9.Click, _
cmd0.Click
Dim cmd As Button
Dim No As String
cmd = CType(sender, Button) 'イベント発生元のボタン情報を取得

Select Case cmd.Name 'ボタン名を参照
Case "cmd1" : No = "1"
Case "cmd2" : No = "2"
Case "cmd3" : No = "3"
Case "cmd4" : No = "4"
Case "cmd5" : No = "5"
Case "cmd6" : No = "6"
Case "cmd7" : No = "7"
Case "cmd8" : No = "8"
Case "cmd9" : No = "9"
Case "cmd0" : No = "0"

End Select

End Sub

エラーは
cmd.clickで指定されているメゾットで表示できません。
cmdは宣言されていません。
ということでした。

どうすれば、電卓の数字をクリックしたときに、
ラベルに表示できますか?
よろしければ添削お願いいたします。
助言でも結構ですので、申し訳ありませんが
よろしくお願いします。

A 回答 (1件)

VB6では簡単にできていたコントロール配列ですね。



まず、エラーの原因は、cmd_Clickイベントに割りついている
Private Sub cmd_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _
Handles cmd1.Click, cmd2.Click, cmd3.Click, _
cmd4.Click,cmd5.Click, cmd6.Click, _
cmd.Click, cmd8.Click,cmd9.Click, _
cmd0.Click

の、"cmd.Click"が"cmd7.Click"なのでしょう。
あと、ボタンより数字を特定するのに、Tagなどを利用すると簡単
になります。各ボタンのTagプロパティに対応する数字をセット
しておけば、

Dim btn As Button = CType(sender, Button)
Dim No As String = CType(btn.Tag, String)
lblTest.Text = No

こんな感じになります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!