'这是窗体里代码
'Dim xMouse As Integer, yMouse As Integer
'Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' ' 按下鼠标左键时
' If Button = 1 Then
' ' 记录鼠标按下时的坐标
' xMouse = X
' yMouse = Y
' End If
'End Sub
'Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' ' 移动鼠标时
' If Button = 1 Then
' ' 计算窗体应该移动的距离
' Me.StartUpPosition = 0 ' 设置窗体的启动位置为手动
' Me.Left = Me.Left + (X - xMouse)
' Me.Top = Me.Top + (Y - yMouse)
' End If
'End Sub
Dim Cls As FormMove
Private Sub UserForm_Initialize()
Set Cls = New FormMove
Cls.GetForm Me
End Sub
Option Explicit
'类模块代码
Private WithEvents myForm As MSForms.UserForm '标题栏
Private xMouse As Integer, yMouse As Integer
Sub GetForm(Form As Object)
Set myForm = Form
End Sub
Private Sub myForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' 按下鼠标左键时
If Button = 1 Then
' 记录鼠标按下时的坐标
xMouse = X
yMouse = Y
End If
End Sub
Private Sub myForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' 移动鼠标时
If Button = 1 Then
' 计算窗体应该移动的距离
myForm.StartUpPosition = 0 ' 设置窗体的启动位置为手动
myForm.Left = myForm.Left + (X - xMouse)
myForm.Top = myForm.Top + (Y - yMouse)
End If
End Sub
以上是我创建的一个class类,在窗体类被注释的部分是实现按下鼠标移动窗体的代码,我想将这一部分代码封装成一个类,可以供其他窗体使用,但是在类里面执行到改变myform位置的时候就会报错,谁能解答一下