• 締切済み

電卓の数字0~9までのボタンをクリックした時

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は宣言されていません。 ということでした。 どうすれば、電卓の数字をクリックしたときに、 ラベルに表示できますか? よろしければ添削お願いいたします。 助言でも結構ですので、申し訳ありませんが よろしくお願いします。

みんなの回答

  • unamana19
  • ベストアンサー率62% (56/89)
回答No.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 こんな感じになります。

関連するQ&A