Negrilla en TextBox Personalizado en VB Net

Buenas Tardes Experto.

Mi pregunta es la siguiente: Tengo un texbox, el cual he personalizado a mi manera para los diferentes usos que tengo, validaciones, tipo de fuente, bordes, tamaño de la fuente, validaciones, en fin, todo un manejo personalizado.

He usado la clase textbox para heredar las propiedades y métodos que existen de este control en mi propio control de usuario.

Todo marchaba bien, hasta que mi cliente pidió que cuando el texbox fuera Enabled = False, automáticamente la propiedad readonly fuera true, quiere un fondo diferente, y adicionalmente que la la fuente fuera en negrilla.

Cuando hice la modificación, sobrescribí el método Enabled y lo puse todas estas validaciones; todas funcionan (al menos en tiempo de ejecución), menos que me cambie la fuente por negrilla. Lo he intentado de todo pero aun no ha sido posible lograr mi objetivo.

Mi cliente es programador y básicamente lo que yo le ofrecí fue una clase con todos los controles personalizados (así como lo hace DevComponents).

Me ha dicho también si es posible que esos cambios se vean en tiempo de diseño, pero tampoco he logrado hacerlo. Igual ahora me urge mas colocar la negrilla en el texto.

Adjunto un pedazo del código en meción y si es necesario, puedo ceder todo el código del componente para analizarlo.

<System.ComponentModel.Category("Comportamiento"), System.ComponentModel.Description("Indica si el control está habilitado.")> _
 Public Overloads Property Enabled() As Boolean
     Get
         Return MyBase.Enabled
     End Get
    Set(ByVal value As Boolean)
         If value = True Then
             MyBase.ReadOnly = False
             'Cambiamos la fuente a negrilla false
             MyBase.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
             MyBase.BackColor = Color.White
         Else
             MyBase.ReadOnly = True
             'Cambiamos la fuente a negrilla true
            MyBase.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
             MyBase.BackColor = Color.AliceBlue
         End If
         MyBase.Enabled = value
         MyBase.Refresh()
    End Set
 End Property

Agradezco que me puedan coolaborar, y la pregunta esta orientada a todos los expertos que hayan tenido la experiencia de crear sus propios controles.

Añade tu respuesta

Haz clic para o