我在 Visual Studio 中有一个表单,需要禁用表单中的一个标签,(在行为类别下,
Enabled
设置为 False
)。
当 Label Behavior 设置为“Enabled = False”时,当我运行应用程序时,Label 的 ForeColor 变为灰色。如果我想保留原来的颜色,我该怎么做呢? 我想使用的 ForeColor 是白色。
一个解决方案是继承
Label
类,然后隐藏基Enabled
属性:
Public Class MyLabel : Inherits Label
' https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Control.cs,eb7c3ce1cd1cb1d3
Public Overridable Shadows Property Enabled As Boolean
Get
If (MyBase.Parent IsNot Nothing) Then
Return MyBase.Parent.Enabled
Else
Return Me.enabledB
End If
End Get
Set(value As Boolean)
If (value <> Me.enabledB) Then
Me.enabledB = value
MyBase.OnEnabledChanged(EventArgs.Empty)
End If
End Set
End Property
Private enabledB As Boolean ' Backing field
Public Sub New()
Me.enabledB = True
End Sub
End Class
我需要禁用 TableLayoutPanel 中的 Label 控件,以便在 TableLayoutPanel 中启用滑动手势。但是,当滑动手势出现在 Label 控件顶部时,使用此方法会停止滑动手势的工作。