我需要根据全局变量将表单控件(文本框,单选按钮等)的readOnly属性设置为 readOnly = true或false 。
我希望我能像这样循环每种类型的控件:
For Each Ctrl In Me.Controls
Ctrl.ReadOnly = myGlobalTrueFalse
Next
但这不起作用,因为每个Ctrl都没有ReadOnly属性。
有什么想法吗?
谢谢!
答案 0 :(得分:2)
我想你只需要在尝试为它赋值之前测试控件是否具有属性。
For Each Ctrl In Me.Controls
If Ctrl.ReadOnly Is Not Nothing Then
Ctrl.ReadOnly = myGlobalTrueFalse
End If
Next
这是更多的资源,而不是简单地将所有想要禁用的控件放在像面板这样的容器中,禁用容器本身。 (这将禁用其中的所有控件)
答案 1 :(得分:1)
请先查看PhaDaPhunks的回答。
自从我编写了任何VB代码以来已经过去了,但这应该是这样的 您可以添加更多循环。
For Each Ctrl In Me.Controls
If Ctrl.ReadOnly Is Not Nothing Then
Ctrl.ReadOnly = myGlobalTrueFalse
End If
For Each Ctrl2 In Ctrl.Controls
If Ctrl2.ReadOnly Is Not Nothing Then
Ctrl2.ReadOnly = myGlobalTrueFalse
End If
Next
Next
答案 2 :(得分:1)
要访问所有控件,包括容器中的控件,请使用此
Dim ctrl As Control = Me.GetNextControl(Me, True)
Do Until ctrl Is Nothing
'perform action here
ctrl = Me.GetNextControl(ctrl, True)
Loop
答案 3 :(得分:-2)
Try
For Each Ctrl In Me.Controls
Ctrl.ReadOnly = myGlobalTrueFalse
Next
Catch ex As Exception
End Try
这就是我发生这种情况时使用的方法