VB 窗体移动

这段代码定义了两个事件处理子程序,分别响应SSTab_Calender对象的MouseDown和MouseMove事件,调用WinMove函数来处理窗体移动。WinMove函数根据条件判断是鼠标按下还是移动,并更新对象的位置。如果发生错误,会弹出提示并询问用户是否继续执行。
摘要由CSDN通过智能技术生成
Private Sub SSTab_Calender_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    Call WinMove("MouseDown", SSTab_Calender, Button, x, y)
End Sub
Private Sub SSTab_Calender_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Call WinMove("MouseMove", SSTab_Calender, Button, x, y)
End Sub

'窗体移动
Public Function WinMove(ByVal condition As String, ByRef Obj As Object, Button As Integer, x As Single, y As Single)
    Dim PointerOrgin() As String
1   On Error GoTo Err_WinMove
    '-------------------------------------
2   If Button = 1 Then    '右键按下
3       If condition = "MouseDown" Then
4           Obj.Tag = x & " " & y
5       ElseIf condition = "MouseMove" Then
6           PointerOrgin = Split(Obj.Tag, " ")
7           Obj.Left = Obj.Left + (x - Val(PointerOrgin(0)))
8           Obj.Top = Obj.Top + (y - Val(PointerOrgin(1)))
9       End If
10  End If
    '-------------------------------------
11  On Error GoTo 0
12  Exit Function
Err_WinMove:
13  If MsgBox("【错误代码】:" & Err.Number & vbCrLf & "【错误描述】:" & Err.Description & vbCrLf & "【出错位置】: [FunAll]→ [WinMove]的 " & Erl & "行" & vbCrLf & "是否继续?", vbYesNo + vbQuestion + vbDefaultButton1, "错误处理") = vbYes Then Resume Next
End Function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值