加一个timer控件
Option Explicit
Dim iPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
i = 0
Timer1.Enabled = TrueEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = False
MsgBox i
End SubPrivate Sub Timer1_Timer()
i = i + 1
End Sub

解决方案 »

  1.   

    刚才没看到右键,现在好了
    Option Explicit
    Dim iPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 2 Then
    i = 0
    Timer1.Enabled = True
    End If
    End SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 2 Then
    Timer1.Enabled = False
    MsgBox i
    End If
    End SubPrivate Sub Timer1_Timer()
    i = i + 1
    End Sub
      

  2.   

    用一个变量标志mousedown和mouseup是在同一次鼠标事件中.
    再用一个变量记载两个事件的时间间隔.
      

  3.   

    要将上面的程序在Form_MouseDown和Form_MouseUp中
    上加一个判断:
    if Button =2 '是否为右键单击 
      

  4.   

    如果要在标题栏右键也需要考虑的话用mickwang的方法就不行了。
    http://www.csdn.net/expert/topic/825/825003.xml?temp=8.572024E-02Option ExplicitPrivate Sub Form_Load()
        procOld = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf SysMenuProc)    '获得原消息处理句柄,并将消息处理转交自定义函数
    End Sub
    'modoul1
    Option ExplicitPublic Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Const WM_SYSCOMMAND = &H112
    Public Const GWL_WNDPROC = (-4)Private Const WM_NCLBUTTONDOWN = &HA1
    Private Const WM_NCBUTTONUP = &H215Public procOld As Long'in a moudle
    '自定义窗体消息处理程序,可以截取窗体的标题栏鼠标事件
    Public Function SysMenuProc(ByVal hwnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Static TopMostStatus As Boolean
        Select Case iMsg
            Case WM_NCLBUTTONDOWN
                Debug.Print "标题栏鼠标左键按下"
            Case WM_NCBUTTONUP
                Debug.Print "鼠标松开"    End Select
        
        SysMenuProc = CallWindowProc(procOld, hwnd, iMsg, wParam, lParam)
    End Function
    ---------------------------------------------------------------十年生死两茫茫。不思量,自难忘。千里孤坟,无处话凄凉。纵使相逢应不识。尘满面,鬓如霜。夜来幽梦忽还乡。小轩窗,正梳妆。相顾无言,惟有泪千行。料得年年肠断处。明月夜,短松岗。