O controle personalizado do .NET vb herdado do TextBox não dispara o evento Paint

Preciso de uma caixa de texto com várias linhas sempre desativada, mas ela não deve se pintar de cinza, mas quero manter a cor escolhida pelo designer.

Anteriormente, eu tinha o mesmo requisito com um Label sempre preto (sem multilinha) e, portanto, herdei do Label como:

Imports System.ComponentModel

   Public Class LabelDisabled
        Inherits Label

        Sub New()
            InitializeComponent()
            Enabled = False
        End Sub

        Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
            ' always draw it black
            e.Graphics.DrawString(Me.Text, Me.Font, Brushes.Black, 0, 0)
        End Sub

    End Class

Isso funciona bem. Agora eu quero a mesma coisa, mas com um rótulo com várias linhas, então escolhi herdar do TextBox:

Imports System.ComponentModel

Public Class CustomControl1
    Inherits TextBox

    Sub New()

        InitializeComponent()
        'Paint never fires anyway
        'Enabled = False
    End Sub


    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim brush As New SolidBrush(Me.ForeColor)
        e.Graphics.DrawString(Me.Text, Me.Font, brush, 0, 0)
    End Sub

End Class

Agora, o evento Paint nunca é acionado no controle CustomControl1 - TextBox herdado -.

Por que não consigo o evento Paint?

Além disso, se eu quiser tornar a propriedade Enabled invisível e não configurável pelo usuário, eu faço:

<Browsable(False),
DefaultValue(False)>
Public Overloads Property Enabled As Boolean
    Get
        Return False
    End Get
    Set(ByVal value As Boolean)
    End Set
End Property

Mas, dessa forma, nem eu posso definir a propriedade Enabled "real", quero dizer o campo de apoio.

questionAnswers(2)

yourAnswerToTheQuestion