读书人

请问

发布时间: 2012-01-15 22:57:48 作者: rapoo

请教
以下代码什么意思,最好每行能给个注释,谢谢了
Sub FC_LockField(ParamArray ctlName())
Dim ctlName1 As Variant

For Each ctlName1 In ctlName
If (TypeOf ctlName1 Is TextBox) Or (TypeOf ctlName1 Is ComboBox) Or (TypeOf ctlName1 Is myCombox) Then
ctlName1.Locked = True
ctlName1.BackColor = &H80000004
ctlName1.TabStop = False
ElseIf ((TypeOf ctlName1 Is Frame) Or (TypeOf ctlName1 Is CommandButton)) Then
ctlName1.Enabled = False
ElseIf ((TypeOf ctlName1 Is RGDate)) Then
ctlName1.Enabled = False
ctlName1.BackColor = &H80000004
Else
Dim rc As Long
rc = MsgBox( "函数使用错误-在 " & ctlName1.Name, vbOKOnly, "调试信息 ")
ctlName1.SetFocus
End If
Next
End Sub

[解决办法]
Sub FC_LockField(ParamArray ctlName())
Dim ctlName1 As Variant

For Each ctlName1 In ctlName
If (TypeOf ctlName1 Is TextBox) Or (TypeOf ctlName1 Is ComboBox) Or (TypeOf ctlName1 Is myCombox) Then '判断是否为文本框,组合框或者myCombox(这个好象是外部的控件吧)
ctlName1.Locked = True ‘解锁,可以输入
ctlName1.BackColor = &H80000004 ’控件设背景颜色
ctlName1.TabStop = False
ElseIf ((TypeOf ctlName1 Is Frame) Or (TypeOf ctlName1 Is CommandButton)) Then ‘如果是框架控件或者命令按钮
ctlName1.Enabled = False ’将其不可用
ElseIf ((TypeOf ctlName1 Is RGDate)) Then
ctlName1.Enabled = False
ctlName1.BackColor = &H80000004
Else
Dim rc As Long
rc = MsgBox( "函数使用错误-在 " & ctlName1.Name, vbOKOnly, "调试信息 ")
ctlName1.SetFocus
End If
Next
End Sub
其实就是判断各个控件的状态,对其改变属性!
[解决办法]
这个函数应该是用来锁定一组控件的。

例如:
在Form上有一个TextBox控件, 名为Text1;还有一个ComboBox控件,名为Combo1;还有一个CommandButton控件,名为Command1

现在这样调用:
FC_LockField Text1, Combo1, Command1
则这个函数会将Text1和Combo1设置成只读,背景为灰色,同时将Command1设置为不可用。

读书人网 >VB

热点推荐