请问如和得到鼠标所在处的listview的行数和列数啊!

incubus 2005-09-25 04:10:06
急用,谢谢各位。特别是列数。
...全文
362 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
123liuhh 2005-11-29
  • 打赏
  • 举报
回复
laviewpbt(人一定要靠自己)
好像只能得到第一列

ListView1控件要做些什么设置
ListView1.View = lvwReport
南山明月 2005-11-29
  • 打赏
  • 举报
回复
Private Sub ListView1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Deal Button, X, Y
'MsgBox ListView1.SelectedItem.Index
Dim J As Integer '列数
Dim l As Long, I As Long
Dim w As Long
Dim h As Long

If ListView1.ListItems.Count = 0 Then Exit Sub

For J = 1 To ListView1.ColumnHeaders.Count
w = w + ListView1.ColumnHeaders(J).Width
Next
'w = ListView1.Width

'(listview1.listitems.count) 指 listview1 所有的行数
'ListView1.ListItems(1).Height 指 listview1中每一行的高度
h = ListView1.ListItems.Count * ListView1.ListItems(1).Height + 240

If Y > h Then Exit Sub '如果鼠标的Y坐标超过了listview1的数据区域

J = 0
l = X
If Button = vbLeftButton And w > 0 Then
If l < w - 15 Then
Do While l > 0
J = J + 1
l = l - ListView1.ColumnHeaders(J).Width 'J 为找到第几列数
Loop
Else
Exit Sub
End If
End If

Text1.Left = 100

If J > 1 Then
For I = 1 To J - 1
Text1.Left = Text1.Left + ListView1.ColumnHeaders(I).Width 'text的位置在相应的列

Next
End If

Text1.Top = ListView1.SelectedItem.Top + 90
Text1.Width = ListView1.ColumnHeaders(J).Width + 10
'Text1.Height = ListView1.ListItems(1).Height
If J = 1 Then
Text1.Text = ListView1.SelectedItem.Text
Else
Text1.Text = ListView1.SelectedItem.ListSubItems(J - 1).Text

End If

Text1.Visible = True
Text1.SetFocus
End Sub
南山明月 2005-11-29
  • 打赏
  • 举报
回复
Private Sub ListView1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Deal Button, X, Y
'MsgBox ListView1.SelectedItem.Index
Dim J As Integer '列数
Dim l As Long, I As Long
Dim w As Long
Dim h As Long

If ListView1.ListItems.Count = 0 Then Exit Sub

For J = 1 To ListView1.ColumnHeaders.Count
w = w + ListView1.ColumnHeaders(J).Width
Next
'w = ListView1.Width

'(listview1.listitems.count) 指 listview1 所有的行数
'ListView1.ListItems(1).Height 指 listview1中每一行的高度
h = ListView1.ListItems.Count * ListView1.ListItems(1).Height + 240

If Y > h Then Exit Sub '如果鼠标的Y坐标超过了listview1的数据区域

J = 0
l = X
If Button = vbLeftButton And w > 0 Then
If l < w - 15 Then
Do While l > 0
J = J + 1
l = l - ListView1.ColumnHeaders(J).Width 'J 为找到第几列数
Loop
Else
Exit Sub
End If
End If

Text1.Left = 100

If J > 1 Then
For I = 1 To J - 1
Text1.Left = Text1.Left + ListView1.ColumnHeaders(I).Width 'text的位置在相应的列

Next
End If

Text1.Top = ListView1.SelectedItem.Top + 90
Text1.Width = ListView1.ColumnHeaders(J).Width + 10
'Text1.Height = ListView1.ListItems(1).Height
If J = 1 Then
Text1.Text = ListView1.SelectedItem.Text
Else
Text1.Text = ListView1.SelectedItem.ListSubItems(J - 1).Text

End If

Text1.Visible = True
Text1.SetFocus
End Sub
northwolves 2005-11-29
  • 打赏
  • 举报
回复
鼠标所在处的listview的行数和列数
-----------------------------------
本程序还是外部程序?是否该窗口有很多LISTVIEW?
laviewpbt 2005-11-29
  • 打赏
  • 举报
回复
Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim a As Single, Column As Long, i As Long
a = x / 15 - ListView1.SelectedItem.Left
For i = 1 To ListView1.ColumnHeaders.Count
If (ListView1.ColumnHeaders(i).Left <= a) And (a <= ListView1.ColumnHeaders(i).Left + ListView1.ColumnHeaders(i).Width) Then
Column = i
Exit For
End If
Next i
Label1.Caption = Column
End Sub
123liuhh 2005-11-29
  • 打赏
  • 举报
回复
up
vansoft 2005-09-26
  • 打赏
  • 举报
回复
樓上的朋友們看清楚題目。

用API來做。
我在哪個Listview的問題貼裏回過代碼的,
你自己搜索一下。
myhgyp 2005-09-25
  • 打赏
  • 举报
回复
Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
ListView1.ToolTipText = "行数:" & ListView1.ListItems.Count & "列数:" & ListView1.ColumnHeaders.Count
End Sub
myhgyp 2005-09-25
  • 打赏
  • 举报
回复
"行数:" & ListView1.ListItems.Count & " 列数:" & ListView1.ColumnHeaders.Count
SFMrp2000 2005-09-25
  • 打赏
  • 举报
回复
嘻嘻.

關注中.
lingll 2005-09-25
  • 打赏
  • 举报
回复
hittest

1,451

社区成员

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

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