会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 源码 > 作品展示 > Access作品 > 正文

EDF应用实例讲解——窗体控件随便拖

时间:2006-07-28 15:02 来源:http://bbs.office-cn.net 作者:LucasLynn『作品』 阅读:
软件类型:国产软件 授权方式:免费版 界面语言:英文 软件大小:12 KB 文件类型:其它 运行环境:Win9x/NT/2000/XP/2003 软件等级:☆☆☆☆☆ 发布时间:2006-07-28 插件情况:无插件,请放心使用。 下载次数:
软件介绍:

前言:

  EDF(EventsDistributionFrame)是本人在Access学习中开发的一个功能强大的程序,能够使许多不同类型的Access事件编程简化,为更好地介绍这个程序的使用方法,我将陆续介绍多个EDF的应用范例,及其代码的详细讲解。以便使用者更快地掌握其功能。

注:最新发布的EDF V1.2版本中已经包含了这个示例程序的最新版本,并且使用了1.2的新特性,不必再占用控件的Tags属性,改为使用EDF V1.2新增的自定义属性功能。

程序介绍:

本程序为EDF功能演示程序之一。本程序使用了EDF 1.11,实现了以下功能:

1、窗体上任何控件均能随意拖动。与多数拖动程序不同的是,开始拖动时,本程序将保持鼠标与控件的相对位置不变,而不是绑定到窗体左上角。当然前提是这个控件本身要支持鼠标事件。
2、选择控件后使用ALT加方向键,可以进行1缇为单位的位置微调。当前前提是这个控件本身要支持键盘事件。
3、可拖动的控件包括所有Access标准控件,包括窗体上已有的,和你自己加上去的控件。(你可以自己添加几个标准控件试试)
4、程序中使用了防错以避免超出窗体范围。

以上全部功能,使用EDF后,在不到30行代码内完成。

实现代码:



'定义EDF环境变量
Public edfCtls As New Collection
Public edfPorts As New Collection

Public Sub Form_Load()
    '截获窗体所有控件的事件
    edfInitEvents edfCtls, edfPorts, Me, 0
    '设定事件处理程序为DragDrop
    edfInitPorts edfPorts, AddressOf DragDrop, 0
End Sub



Public Sub DragDrop(ByRef acCtl As Control, ByRef strEvent As String, ByRef Params As Collection, ByRef reserved As Long)
    Dim Tags() As String
    '开始拖动,在标记中保存鼠标相对位置
    If strEvent = "MouseDown" Then
        acCtl.Tag = Params("X") & "," & Params("Y")
        Exit Sub
    End If
    '结束拖动,清除标记
    If strEvent = "MouseUp" Then acCtl.Tag = ""
    
'防止越界
On Error GoTo Exit_Sub
    '键盘移动
    If strEvent = "KeyDown" Then
        Select Case Params("KeyCode").Value
        Case 37: '左方向键
            acCtl.Left = acCtl.Left - 1
        Case 38: '上方向键
            acCtl.Top = acCtl.Top - 1
        Case 39: '右方向键
            acCtl.Left = acCtl.Left + 1
        Case 40: '下方向键
            acCtl.Top = acCtl.Top + 1
        End Select
    End If
    '鼠标拖动
    If strEvent = "MouseMove" And acCtl.Tag <> "" Then
        Tags = Split(acCtl.Tag, ",")
        acCtl.Left = acCtl.Left + Params("X") - CLng(Tags(0))
        acCtl.Top = acCtl.Top + Params("Y") - CLng(Tags(1))
    End If
    
Exit_Sub:
End Sub

顶一下
(0)
0%
踩一下
(0)
0%
下载地址:
注意事项:

☉推荐使用第三方专业下载工具下载本站软件,使用 WinRAR v3.10 以上版本解压本站软件。
☉如果这个软件总是不能下载的请点击报告错误,谢谢合作!!
☉下载本站资源,如果服务器暂不能下载请过一段时间重试!
☉如果遇到什么问题,请到本站论坛去咨寻,我们将在那里提供更多 、更好的资源!
☉本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: