Пользовательский элемент управления vb .NET, наследуемый от TextBox, не запускает событие Paint

Мне нужен многострочный TextBox, который всегда отключен, но он не должен закрашиваться серым цветом, но я хочу сохранить выбранный дизайнером цвет.

Ранее у меня было такое же требование с всегда черной меткой (без мультилинии), и поэтому я унаследовал от метки, как:

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

Это отлично работает. Теперь я хочу то же самое, но с многострочным ярлыком, поэтому я решил наследовать от 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

Теперь событие Paint никогда не запускается в пользовательском элементе управления CustomControl1 - TextBox.

Почему я не могу получить событие Paint?

Кроме того, если я хочу сделать свойство Enabled невидимым и не устанавливаемым пользователем, я делаю:

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

Но, таким образом, я не могу установить «реальное» свойство Enabled, я имею в виду поле поддержки.

Ответы на вопрос(2)

Ваш ответ на вопрос