投稿者 ゆう  (学生) 投稿日時 2010/2/23 09:42:06
MouseClickの右クリックと左クリックを使ってラベルの数値を変えたいのですが、(左:増加、右:減少)どうも反応が鈍いです…。
なにかいい方法があったら教えてください。(VB2008Express)
とりあえず、書いてみたコードです。
    Public Sub SYUSSEKI(ByVal sender As ObjectByVal e As System.Windows.Forms.MouseEventArgs)
        Dim Jyu As String = sender.Text  '数値を表示しているラベルです。 
        Dim Kazu As Integer = CInt(Jyu) 'ラベルを数値化してみました。 
        If Kazu > 0 And Kazu < 31 Then
            Select Case e.Button
                Case Windows.Forms.MouseButtons.Left
                    '日数ラベルの左クリック対応(足す) 
                    sender.text = CStr(Kazu + 1)
                Case Windows.Forms.MouseButtons.Right
                    '日数ラベルの右クリック対応(引く) 
                    sender.text = CStr(Kazu - 1)
            End Select
        ElseIf Kazu = 31 Then
            Select Case e.Button
                Case Windows.Forms.MouseButtons.Left
                    '日数ラベルの左クリック対応(足せない) 
                    MsgBox("Error!" & vbNewLine & "これ以上の値を設定できません。")
                Case Windows.Forms.MouseButtons.Right
                    '日数ラベルの右クリック対応(引く) 
                    sender.text = CStr(Kazu - 1)
            End Select
        ElseIf Kazu = 0 Then
            Select Case e.Button
                Case Windows.Forms.MouseButtons.Left
                    '日数ラベルの左クリック対応(足す) 
                    sender.text = CStr(Kazu + 1)
                Case Windows.Forms.MouseButtons.Right
                    '日数ラベルの右クリック対応(引けない) 
                    MsgBox("Error!" & vbNewLine & "これ以下の値を設定できません。")
            End Select
        Else
            MsgBox("Error!" & vbNewLine & "値が異常です。")
        End If
    End Sub


Public Sub SYUSSEKI2(ByVal sender As ObjectByVal e As System.Windows.Forms.MouseEventArgs)
    Dim Jyu As String = sender.Text
    Select e.Button
        Case Windows.Forms.MouseButtons.Left
            '日数ラベルの左クリック対応(足す) 
            If Jyu = "31" Then
                MsgBox("Error!" & vbNewLine & "これ以上の値を設定できません。")
            Else
                Dim S As Integer
                For S = 0 To 30
                    If sender.text = CStr(S) Then
                        sender.text = CStr(S + 1)
                        Exit For
                    End If
                Next
            End If
        Case Windows.Forms.MouseButtons.Right
            '日数ラベルの右クリック対応(引く) 
            If Jyu = "0" Then
                MsgBox("Error!" & vbNewLine & "これ以下の値を設定できません。")
            Else
                Dim S As Integer
                For S = 1 To 31
                    If sender.text = CStr(S) Then
                        sender.text = CStr(S - 1)
                        Exit For
                    End If
                Next
            End If
    End Select
End Sub


Public Sub SYUSSEKI3(ByVal sender As ObjectByVal e As System.Windows.Forms.MouseEventArgs)
    Dim Jyu As String = sender.Text
    Select Case e.Button
        Case Windows.Forms.MouseButtons.Left
            '日数ラベルの左クリック対応(足す) 
            If Jyu = "31" Then
                MsgBox("Error!" & vbNewLine & "これ以上の値を設定できません。")
            ElseIf Jyu = "30" Then
                sender.text = "31"
            ElseIf Jyu = "29" Then
                sender.text = "30"
~~省略~~
            ElseIf Jyu = "0" Then
                sender.text = "1"
            Else
                MsgBox("Error!" & vbNewLine & "値が異常です。")
            End If
        Case Windows.Forms.MouseButtons.Right
            '日数ラベルの右クリック対応(引く) 
            If Jyu = "0" Then
                MsgBox("Error!" & vbNewLine & "これ以下の値を設定できません。")
            ElseIf Jyu = "31" Then
                sender.text = "30"
~~省略~~
            ElseIf Jyu = "1" Then
                sender.text = "0"
            Else
                MsgBox("Error!" & vbNewLine & "値が異常です。")
            End If
   End Select
End Sub


最後のやつが反応が良い気がしますが、それでも遅いです。
変なところがあったら、指摘・ヒント等いただけると嬉しいです。
よろしくお願いします。