我在表单上默认禁用了一些链接,每个链接都使用LinkLabel
控件。
根据某些用户互动,我需要启用LinkLables
中的一个或全部。我可以启用单个LinkLabel
,但我无法找到启用所有这些功能的方法。
在下面的示例中,我尝试启用所有控件(作为对我的方法的测试),但是失败并且LinkLabels
根本没有启用。
因此我的问题是两部分 -
LinkLabel
控件?这是我到目前为止所拥有的 -
Private Sub EnableLink(Optional ByRef linkLabel As LinkLabel = Nothing)
If linkLabel Is Nothing Then ' Enable all links
For Each singleLink In Me.Controls
singleLink.Enabled = True
Next
Else ' Enable a single link
linkLabel.Enabled = True
End If
End Sub
加分问题 - 我可能需要将LinkLabels
分为两个部分,因此有没有办法识别放置在特定控件中的LinkLabels
,例如作为Panel
或TableLayoutPanel
?
答案 0 :(得分:1)
您可以使用以下代码测试控件是否为LinkLabel
:
For Each ctrl as Control In Me.Controls
If TypeOf ctrl Is LinkLabel Then ctrl.Enabled = True
Next ctrl
如果您将LinkLabel
放入容器(例如Panel
或TableLayoutPanel
),则可以使用以下功能:
Private Sub EnableAllLinkLabels(ByVal ctrlContainer As Control, ByVal blnEnable As Boolean)
If ctrlContainer.HasChildren Then
For Each ctrl As Control In ctrlContainer.Controls
If TypeOf ctrl Is LinkLabel Then
ctrl.Enabled = blnEnable
ElseIf TypeOf ctrl Is Panel Or TypeOf ctrl Is TableLayoutPanel Then
EnableAllLinkLabels(ctrl, blnEnable)
End If
Next ctrl
End If
End Sub
如果您将容器放在另一个容器中(即:GroupBox
中的Panel
),此函数也可以。
要启用LinkLabel
中的所有Form
,请使用此代码调用该函数:
EnableAllLinkLabels(Me, True)
如果您只想禁用LinkLabel
中的Panel3
,则可以使用此代码:
EnableAllLinkLabels(Me.Panel3, False)