vb中listview怎么让上面item不能呗鼠标拖动

发布于2022-01-13 07:14:04
4个回答
admin
网友回答2022-01-13
Private Declare Function ReleaseCapture Lib user32 () As Long

Private Sub Form_Load()
With ListView1
.ListItems.Add , , Item1
.ListItems.Add , , Item2
.ListItems.Add , , Item3
End With
End Sub

Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 1 Then
ReleaseCapture
End If
End Sub
admin
网友回答2022-01-13
vb本身做不到这点,也许API函数可以做到。我没有做过,帮不了你了。
admin
网友回答2022-01-13
Private Sub Form_Click()
Static num As Integer
num = num + 1
Text1 = num
End Sub

Private Sub Form_Load()
Text1 = 0
End Sub
admin
网友回答2022-01-13
完美的解决方法是去掉系统自带的边框和标题栏(也就是 FormBorderStyle 设为 None),然后重绘出边框和标题栏。

其次一点的解决方法是重写窗体的 WndProc 事件,拦截点击标题栏时的系统消息。

最简单的解决方法还是写 WndProc 事件,强制给 Me.Location 赋值成 Point.Empty。缺点是如果要拖动窗体的话会有抖动。

参考:
Protected Overrides Sub WndProc(ByRef m As Message) If (Me.Location Point.Empty) Then Me.Location = Point.Empty MyBase.WndProc(m)End Sub

回到
顶部