Visual Studio、表单、标签已禁用但保留前景色(Visual Basic)

问题描述 投票:0回答:2

我在 Visual Studio 中有一个表单,需要禁用表单中的一个标签,(在行为类别下,

Enabled
设置为
False
)。

当 Label Behavior 设置为“Enabled = False”时,当我运行应用程序时,Label 的 ForeColor 变为灰色。如果我想保留原来的颜色,我该怎么做呢? 我想使用的 ForeColor 是白色。

vb.net winforms visual-studio-2015 label
2个回答
1
投票

一个解决方案是继承

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

0
投票

我需要禁用 TableLayoutPanel 中的 Label 控件,以便在 TableLayoutPanel 中启用滑动手势。但是,当滑动手势出现在 Label 控件顶部时,使用此方法会停止滑动手势的工作。

© www.soinside.com 2019 - 2024. All rights reserved.