Office中国论坛/Access中国论坛
标题:
窗体中各个控件的相同事件怎样简化
[打印本页]
作者:
zhu320211
时间:
2012-7-14 11:26
标题:
窗体中各个控件的相同事件怎样简化
窗体中各个控件的相同事件能否简化,避免在每个控件中写相同代码,例如在窗体中的文本框控件获得焦点后都要求弹出消息显示控件名,如果在每个控件后写很麻烦,窗体中有没有事件可以简化,避免重复写代码
作者:
yanghua1900363
时间:
2012-7-14 14:55
建议把该相同事件的代码作为一个独立的事件写出来,根据情况或放在模块中,或放在当前窗体中,使用时引用就可以了
作者:
layaman_999
时间:
2012-7-14 16:08
1写FUNCTION模块
2.加载时循环给这些控件的事件属性赋值 “=模块名()"
作者:
咱家是猫
时间:
2012-7-14 16:28
如果动作是完全一样的,按3楼的方法就可以,如果每个控件的动作是一致的,但需要本控件的值作参数,那就需要注意:
1 把控件命令顺序化,前辍一致,后加序号
2 在Function里加序号参数
3 在Form_Load事件上循环给控件加事件属性时,也不要忘了参数值.如
For i=1 to 9
Me.Controls("Text"& I).AftereUpdate="=FunctionName("& i &")"
Next i
要你的Function内,根据参数值,就能取到某个控件的值了
作者:
鱼儿游游
时间:
2012-7-17 00:54
下面的代码已测试通过,供楼主参考。
Private Sub Form_Load()
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.Section = acDetail And ((TypeOf ctl Is TextBox)) Then
ctl.OnGotFocus = "=ShowControlName('" & ctl.Name & "')"
End If
Next
Set ctl = Nothing
End Sub
Private Function ShowControlName(ByVal strControlName As String)
MsgBox "获得焦点的文本控件名为:" & strControlName, vbInformation, "文本控件名"
End Function
复制代码
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3