Crear mi propio control TextBoxEx
En .NET se nos provee muchos controles para que los utilicemos en nuestras aplicaciones, pero una de las ventajas es que los podemos modificar o agregarle propiedades de una forma muy sencilla.
Para crear nuestro TextBoxEx seguiremos algunos pasos simples, y en esta ocación solamente le agregaremos dos acciones.
- Que cuando entre al control le cambie el color del fondo “BackColor” para diferenciarlo de los demás
- Cuando sale del control en el “Leave”, nos identifique si ese campo es requerido o no, y si es requerido nos lo marque con un rojo.


El control que vamos a crear sería con este código:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
Public Class TextBoxEx Inherits System.Windows.Forms.TextBox #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'UserControl overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. Private Sub InitializeComponent() components = New System.ComponentModel.Container End Sub #End Region #Region " Variables " Private mEsRequerido As Boolean = False #End Region #Region " Propiedades " Public Property EsRequerido() As Boolean Get Return mEsRequerido End Get Set(ByVal Value As Boolean) mEsRequerido = Value End Set End Property #End Region #Region " Sobrecarga " Protected Overrides Sub OnEnter(ByVal e As System.EventArgs) Try Me.BackColor = System.Drawing.SystemColors.Info Me.ForeColor = System.Drawing.SystemColors.InfoText Catch ex As Exception Throw End Try End Sub Protected Overrides Sub OnLeave(ByVal e As System.EventArgs) Try If Me.mEsRequerido = True And Me.Text.Trim.Length = 0 Then Me.BackColor = Color.Red Else Me.BackColor = Color.White Me.ForeColor = Color.Black End If Catch ex As Exception Throw End Try End Sub #End Region End Class |
Luego en el código de nuestra aplicación declaramos los TextBox como TextBoxEx y le indicamos en las propiedades si lo deseamos Requerido o No.

En la siguiente entrega veremos como agregarle mas propiedades al control, propiedades de vaidación, si acepta solo numeros o algún tipo de máscara.

6 comments
Anónimo - February 20, 2006 12:45 pm
q onda con la clase!!!!!!!!!!!!!! jejejeje
Anónimo - April 13, 2006 3:45 pm
q buena pero cuando como validar q la primere letra sea en mayuscula tios cuelgela cuanto antes buena
Anónimo - June 13, 2006 3:30 pm
Mi rpegunta es como se puede agregar otra propiedad para que tenga una lista de opciones en ves del True o False exclusivo que muestra la propiedad EsRequerido ?
Anónimo - June 28, 2006 10:32 pm
puedes crear una propiedad de tipo Enum, lo que haces es definirle como una estructura a una propiedad. En lugar de boolean o string utilizas Enum. Primero creas la estructura y luego se la asignas a la propiedad.
Anónimo - July 27, 2006 1:24 pm
Esta Muy Bueno, pero amplía lo de la propiedad enum OK.
Anónimo - July 22, 2007 7:09 pm
k onda!!!