我有一些默认情况下禁用在窗体上的链接,每个链接都使用一个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
发布于 2015-06-11 09:38:53
可以使用以下代码测试控件是否为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)https://stackoverflow.com/questions/30776937
复制相似问题