public function CtlEnabel(FmNam as string ,CtlName() as string,Optional BoolEnabel as boolean=true)
dim ctl as Control
dim CtlNameStr as string
CtlNameStr =Join(CtlName(),";")
for each ctl in forms(FmNam ).form
if replace(CtlNameStr &";",ctl.name,"")<>CtlNameStr then ctl.enabel=BoolEnabel
next
end function
Public Sub llx(Formname As String, Controlsname As String, Optional kyf As Boolean = True)
Kjsz = Split(Controlsname, ";")
For Each A In Kjsz
Forms(Formname).Controls(A).Enabled = kyf
Next
End Sub
调用示例:Call llx("窗体1", "Text1;Text4", False)
注意,多个控件之间用";"分号隔开.
2楼正确,我的刚好把意思写反了!
改成:
public function CtlEnabel(FmNam as string ,CtlName as string,Optional BoolEnabel as boolean=true)
dim ctl as Control
dim CtlNameStr as string
for each ctl in forms(FmNam ).Form
if replace(CtlNameStr &";",ctl.name,"")<>CtlNameStr OR CtlNameStr=ctl.name then ctl.enabel=BoolEnabel
next
end function
当前窗体调用:
CtlEnabel ME,"TEXT1;TEXT2",FALSE
谢谢三位大侠了,我看三位的代码都很好,但只有一个是佳答案,我看二楼老师的代码比较少,就选他的了。
非常感谢大家的帮助!
总记录:4篇 页次:1/1 9 1 :