一、问题描述:
有使用Access快速开发平台的朋友说:生成的模块主窗体的按钮没有生成鼠标按下、鼠标释放和鼠标移动事件(鼠标经过按钮时候光标会变成手型),正常情况下应该自动添加上的,虽然不影响功能但是总觉得不够完善,这里提供给大家一个方法供参考使用。
二、源码示例:
'复制下面的代码到任意模块中 然后按F5运行即可
Function SetBtnHandCursor()
Dim ctrl As Control
Dim frm As Object
Dim strWhere As Boolean
Dim btnStr As String
btnStr = "btnAdd" _
& "btnCopyToNew" _
& "btnEdit" _
& "btnDelete" _
& "btnPrintPreview" _
& "btnPrint" _
& "btnImport" _
& "btnExport" _
& "btnAudit" _
& "btnUndoAudit" _
& "btnRefresh" _
& "btnClose"
For Each frm In CurrentProject.AllForms
'筛选窗体:以 "frm" 开头 窗体名称不包含 "_List" 窗体名称不包含"_Edit" 窗体名称不是以"Sys"开头(Sys开头的是平台的窗体,不建议自己设计的窗体以这个命名)
strWhere = ((frm.Name Like "frm*") And (frm.Name Like "*_List*") = False And (frm.Name Like "*_Edit*") = False And (frm.Name Like "Sys*") = False And (frm.Name Like "*_*") = False)
If strWhere Then
'Debug.Print frm.Name
DoCmd.OpenForm frm.Name, acDesign, , , , acHidden
For Each ctrl In Forms(frm.Name).Controls
If btnStr Like "*" & ctrl.Name & "*" Then
'Debug.Print frm.Name & " " & ctrl.Name
Forms(frm.Name).Controls(ctrl.Name).OnMouseDown = "=SetHandCursor()"
Forms(frm.Name).Controls(ctrl.Name).OnMouseUp = "=SetHandCursor()"
Forms(frm.Name).Controls(ctrl.Name).OnMouseMove = "=SetHandCursor()"
End If
Next
DoCmd.Close acForm, frm.Name, acSaveYes
End If
Next
MsgBox "添加完成!"
End Function