设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1870|回复: 2
打印 上一主题 下一主题

[窗体] [已解决]窗体内几十个textbox的进入事件都会引发相同事件,最简单的代码怎么写?

[复制链接]
跳转到指定楼层
1#
发表于 2013-8-19 21:37:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 软件下载 于 2013-8-19 22:18 编辑

我目前用的是function et(ctl as textbox),然后在每个控件的enter事件中call et(控件名),测试通过。

但是我的控件有近100个,除在每个控件的enter事件里写上述代码外,有没有其他简化的办法?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2013-8-19 21:50:42 | 只看该作者
可效仿:
Private Sub Form_Load()
    Dim ctr As Control
    For Each ctr In Me.Controls
        If ctr.Section = acDetail And ((TypeOf ctr Is TextBox) Or (TypeOf ctr Is ComboBox) Or (TypeOf ctr Is CheckBox)) Then
            ctr.OnDblClick = "=allDblClick()"
        End If
    Next
End Sub

private function allDBClick()
    docmd.openForm " frm_入库单",acnormal,,"ID= "& Me.ID & ""
End function
3#
 楼主| 发表于 2013-8-19 22:17:08 | 只看该作者
netguestcn 发表于 2013-8-19 21:50
可效仿:
Private Sub Form_Load()
    Dim ctr As Control

非常感谢,按照这思路写好了,另外您这代码里的函数名字不一致。

我的代码如下:
Option Compare Database



Private Sub Form_Load()
     Dim ctr As Control
     For Each ctr In Me.Controls
         If TypeOf ctr Is TextBox Then
             ctr.OnEnter = "=allDbClick(" & ctr.Name & ")"
          End If
     Next
End Sub

Private Function allDBClick(ctl As TextBox)
ctl.SelStart = Len(ctl.Text)
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-26 04:04 , Processed in 0.160858 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表