Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
多:1のイベント処理
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30565#CommentId84280
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
あせたけ
 (社会人)
投稿日時
2020/11/3 16:23:19
雑談的と言うか…技術的と言うか…な話題になりますが…^^;
多:1のイベント処理で、通常は…
Private Sub lblMoving_Click(sender As Object, e As EventArgs) Handles lblMovingUp.Click, lblMovingDown.Click, lblMovingLeft.Click, lblMovingRight.Click
Dim dir As Map.Dir
If sender Is lblMovingUp Then
dir = Map.Dir.Up
ElseIf sender Is lblMovingDown then
dir = Map.Dir.Down
ElseIf sender Is lblMovingLeftthen
dir = Map.Dir.Left
ElseIf sender Is lblMovingRightthen
dir = Map.Dir.Right
End If
m.Map.Map_Move(Direction:=dir)
End Sub
…とするところを…
Private Sub lblMoving_Click(sender As Object, e As EventArgs) Handles lblMovingUp.Click, lblMovingDown.Click, lblMovingLeft.Click, lblMovingRight.Click
Dim dir As Map.Dir
Select Case sender
Case lblMovingUp
dir = Map.Dir.Up
Case lblMovingDown
dir = Map.Dir.Down
Case lblMovingLeft
dir = Map.Dir.Left
Case lblMovingRight
dir = Map.Dir.Right
End Select
m.Map.Map_Move(Direction:=dir)
End Sub
…と言う感じには書けないものでしょうか…
(ちなみにこのままではSystem.InvalidCastExeptionが出ます)
Select Case CType(sender,Label) …としてみましたが、今度は「演算子 '=' は、型 'Label' に対して定義されていません…と出ます。
素直にタグネームを入れてやれよと言う話もあるとは思いましたが、
気になりましたので、投稿させて頂きました^^;
<参考>タグネームを付けて処理させて例(これはエラーは出ず、期待通りに処理する)
Private Sub lblMoving_Click(sender As Object, e As EventArgs) Handles lblMovingUp.Click, lblMovingDown.Click, lblMovingLeft.Click, lblMovingRight.Click
Dim dir As Map.Dir
Select Case sender.Tag
Case "UP"
dir = Map.Dir.Up
Case "DOWN"
dir = Map.Dir.Down
Case "LEFT"
dir = Map.Dir.Left
Case "RIGHT"
dir = Map.Dir.Right
End Select
m.Map.Map_Move(Direction:=dir)
End Sub