Access编程交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

源码

ACCESS数据库
数据表
查询
界面/窗体/控件
报表打印
模块/函数/VBA/API/系统

网络通信游戏

API/COM/系统相关

加密解密安全

文件处理

经典算法

内置函数/模块

宏/菜单/工具栏/功能区
图表/图形/图像/多媒体
DAO/链接表/ADO/ADP
ActiveX/第三方控件/插件
OFFICE集成/导入导出/交互
SqlServer/其它数据库
Access完整系统

Access完整系统源码

Access软件作品(无源码)

杂项/其它
Excel源码

热门下载

  • 分享本人早前做的Excel..
  • 最精绝的标签菜单例子
  • 流水账设计技巧
  • 和BINBOW_Z一块进步..
  • 《房产信息查询》超酷界面+..
  • Access导入和导出工具

最新下载

  • 恢复误删除的表
  • 条件格式改变控件颜色的几种..
  • 简单实用的仿OutLook..
  • Office Helper..
  • Office Helper..
  • 易用多栏式日记帐系统

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 源码 > Access完整系统 > Access软件作品(无源码)
Access软件作品(无源码)

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

  • 更新时间2006-07-28 15:02:10
  • 文件下载 点击下载
  • 文件类型
  • 文件版本
  • 简要说明

详细描述

前言:

  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

发布人:LucasLynn『作品』-http://bbs.office-cn.net  
分享到:
点击次数:  更新时间:2006-07-28 15:02:10  【打印此页】  【关闭】
上一条:背景颜色渐变的窗体  下一条:连续自动编号器(ContinuedID)

相关下载

  • • 恢复误删除的表
  • • 条件格式改变控件颜色的几种常用方法
  • • 简单实用的仿OutLook菜单
  • • Office Helper(Office助手) RC版发布
  • • Office Helper 正式版1.0.0.5发布
  • • 易用多栏式日记帐系统
  • • 数据表行列转换工具
  • • 多条件查询实例

热门下载

  • [2005-01-08] ACCESS2003公司数据库管理综合应用里的实例,access数据库
  • [2006-11-20] id重复统计access数据库
  • [2006-10-26] API建立窗体菜单access数据库
  • [2006-08-09] ACCESS一个示例access数据库
  • [2006-07-27] 仓库管理系统+BOM查询的集成系统access数据库
  • [2006-10-08] 国庆大礼包《Access开发平台教程》access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

中山市天鸣科技发展有限公司 版权所有 1999-2023 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2025  www.metinfo.cn