想实现在同一个ListView中拖动某行,进行行之间的位置改变,请问如何获得拖动后目的行是哪一行?

iloveinfo 2004-04-26 03:08:14
想实现在同一个ListView中拖动某行,进行行之间的位置改变,请问如何获得拖动后目的行是哪一行?如下例:

listView


1 test1
2 test2
3 test3

想选择1,开始拖动,然后鼠标放到3然后放下,想实现如下效果:

...
2 test2
3 test3
1 test1
...

请问如何获得最后鼠标放下的位置,HitTest不起作用,总是选择为第一行。
...全文
125 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingZFX 2004-07-19
  • 打赏
  • 举报
回复
唉,又来晚了,,,

楼主,蹭点分,可以吧,可怜可怜哟~~~!
iloveinfo 2004-07-19
  • 打赏
  • 举报
回复
daisy8675(莫依)得分,与我最后的解决方案基本一致。
daisy8675 2004-07-19
  • 打赏
  • 举报
回复
我倒,这帖子的时间夸度也太大了吧。

其实这个我早提交了FAQ嘛-_-#汗一个
daisy8675 2004-06-24
  • 打赏
  • 举报
回复
鼠标单击ListView的 时候,如何得到点的是哪一列?

///////////////////////////////////////
Option Explicit
Dim a As Integer
Dim i As Integer

Private Sub Form_Load()
ListView1.View = lvwReport

ListView1.ColumnHeaders.Add , , "main"
ListView1.ColumnHeaders.Add , , "sub1"

ListView1.ColumnHeaders.Add , , "sub2"
ListView1.ListItems.Add , "test1", "test1"
ListView1.ListItems("test1").SubItems(1) = "test1-1"

ListView1.ListItems("test1").SubItems(2) = "test1-2"
ListView1.ListItems.Add , "test2", "test2"
ListView1.ListItems("test2").SubItems(1) = "test2-1"
ListView1.ListItems("test2").SubItems(2) = "test2-2"
ListView1.FullRowSelect = True

End Sub



Private Sub ListView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
a = x - 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
Me.Label1.Caption = "第" & i & "列": Exit For
End If
Next i
End Sub

RUKYO 2004-06-24
  • 打赏
  • 举报
回复
不行吧?
seabird125 2004-06-24
  • 打赏
  • 举报
回复
在ListView的DragOver事件中

同时结合 listview的hittext事件把拖动的行高亮

1,451

社区成员

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

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