关于listview,怎样判断是否点在了空白处?

sg 2003-09-15 09:33:46
我希望点在表格记录处和空白处,执行两种不同的操作
怎样判断是否点在了空白处?
...全文
229 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mylzw 2003-11-25
  • 打赏
  • 举报
回复
xx
demo001 2003-11-25
  • 打赏
  • 举报
回复
本来一直用阿九的方法的,

可是我太笨了,每次都把握不好尺寸,还很累。



感谢楼主,省了我不少分啊!!!哈哈哈!!
demo001 2003-11-25
  • 打赏
  • 举报
回复
这个问题困扰我很久了

谢谢,lxcc(虫莲)

这样点击空白就可以不让菜单弹出了

也可以在MouseMove事件中根据所在行动态改变ToolTipText了

好贴,收藏先
rainstormmaster 2003-09-16
  • 打赏
  • 举报
回复
你可以使用ListView的HitTest来判断鼠标到底点在哪个条目上了。如果双击的是空白处,这个方法返回的是空
yijiansong 2003-09-16
  • 打赏
  • 举报
回复
用HitTest方法
lxcc 2003-09-16
  • 打赏
  • 举报
回复
在mouse_up事件或者dowm事件中
dim itemx as listitem

set itemx=listview1.hittest(x,y)

if itemx is nothing then
msgbox "click blank!"
else
msgbox itemx.text
endif
lilaclone 2003-09-16
  • 打赏
  • 举报
回复
前不久刚好做了相同的东西,是判断一点是是否在框内(即选中的节点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 Sub

Private 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
lingll 2003-09-15
  • 打赏
  • 举报
回复
用HitTest方法
northwolves 2003-09-15
  • 打赏
  • 举报
回复
Private Sub ListView1_Click()
MsgBox "you click blank area"
End Sub

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
MsgBox "you click item: " & Item.Text
End Sub
sg 2003-09-15
  • 打赏
  • 举报
回复
up
sg 2003-09-15
  • 打赏
  • 举报
回复
up

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧