如何在鼠标仍然closures时检测用户窗体上的mouse_down
当鼠标仍然closures时,我想要检测窗体上任何Frame上的mouse_down。 我知道如何做一个点击,但我想赶上mouse_up之前。
谢谢
您可以为窗体上的每个框架创build一个_MouseDown
事件处理程序,或者如果有多个框架,则可以创build一个通用事件处理程序类
创build一个类模块(例如名为cUserFormEvents
)
Public WithEvents Frme As MSForms.frame Public frm As UserForm Private Sub Frme_MouseDown( _ ByVal Button As Integer, _ ByVal Shift As Integer, _ ByVal X As Single, _ ByVal Y As Single) ' Put your event code here MsgBox Frme.Caption End Sub
为您的框架声明一个集合
Dim mcolFrames As New Collection
将这些代码包含在表单初始化中
Private Sub UserForm_Initialize() Dim ctl As MSForms.Control Dim clsEvents As cUserFormEvents 'Loop through all controls on userform For Each ctl In Me.Controls 'Only process Frames If TypeOf ctl Is MSForms.frame Then 'Instantiate class module and assign properties Set clsEvents = New cUserFormEvents Set clsEvents.Frme = ctl Set clsEvents.frm = Me 'Add instance to collection mcolFrames.Add clsEvents End If Next ctl End Sub
现在, Frme_MouseDown
将在窗体上的任何Frame上的MouseDown上执行。 用Frme
访问特定的Frame