我希望点在表格记录处和空白处,执行两种不同的操作
怎样判断是否点在了空白处?

解决方案 »

  1.   

    Private Sub ListView1_Click()
    MsgBox "you click blank area"
    End SubPrivate Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
    MsgBox "you click item: " & Item.Text
    End Sub
      

  2.   

    你可以使用ListView的HitTest来判断鼠标到底点在哪个条目上了。如果双击的是空白处,这个方法返回的是空
      

  3.   

    前不久刚好做了相同的东西,是判断一点是是否在框内(即选中的节点mItem的Top Width Left Height等属性形成的方框)实现的
    函数调用:
    '********************************************************************************
    '*   功能  描述:判断一点是否在框内
    '*   参数  说明:
    '*         输入:X,Y,Top,Left,Width,Height
    '*         输出:None
    '*   返回值说明:Boolean
    '*   作      者:ajiu
    '*   更      新:
    '*   创建  日期:2003/8/6
    '*   更新  日期:
    '********************************************************************************
    Public Function PointIsRectangle(ByVal X As Single, ByVal Y As Single, ByVal Top As Single, _
                                     ByVal Left As Single, ByVal Width As Single, ByVal Height As Single) As Boolean
                
        Dim bFlag       As Boolean
        
        bFlag = True
        If X < Left Or X > Left + Width Then bFlag = False
        If Y < Top Or Y > Top + Height Then bFlag = False
        PointIsRectangle = bFlag
    End Function'调用
    Private Sub lvwDetail_ItemClick(ByVal Item As MSComctlLib.ListItem)
        Set mItem = Item
    End SubPrivate Sub lvwDetail_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Button <> vbRightButton Then GoTo ExitHandler
        If mItem Is Nothing Then
            Call DisplayMenu(0, mNode.Key)          '显示增加菜单
        Else
            If PointIsRectangle(X, Y, mItem.Top, mItem.Left, mItem.Width, mItem.Height) Then
                Call DisplayMenu(1, mNode.Key)      '显示删除、修改菜单
            Else
                Call DisplayMenu(0, mNode.Key)      '显示增加菜单
            End If
        End If
    ExitHandler:
    End Sub
      

  4.   

    在mouse_up事件或者dowm事件中
    dim itemx as listitemset itemx=listview1.hittest(x,y)if itemx is nothing then
        msgbox "click blank!"
    else
        msgbox itemx.text
    endif
      

  5.   

    这个问题困扰我很久了谢谢,lxcc(虫莲) 这样点击空白就可以不让菜单弹出了也可以在MouseMove事件中根据所在行动态改变ToolTipText了好贴,收藏先