Como puedo personalizar un Textbox!!!

04/01/2007 - 20:23 por Rodrilobo | Informe spam
Queridos amigos... Primero desearles un prospero año nuevo...
Quisiera que alguien me guíe para personalizar un textbox, lo que
quiero es hacer que actue diferente a lo normal, por ejemplo
-que pase al siguiente control o el anterior presionando las
flechas
-que seleccione todo si presiono hacia arriba
-crear una validacion numeral decimal
-que cambie de color cuando esta en foco

mas o menos se que eso es en una clase.. pero he buscado informacion y
no la he encontrado, en el guille me encontre un ejemplo pero no me
funciono...

por cierto estoy programando en VB 2005 y lo que he encontrado es en VB
2003, no se si sea ese el problema...

alguien me ayuda?
 

Leer las respuestas

#1 Rodrilobo
11/01/2007 - 01:17 | Informe spam
Wow eso si es ayudar... muchas gracias ya lo he creado con tu ayuda...
Me a quedado muy bien...

Te agradezco mucho Luis Miguel...




Luis Miguel Blanco ha escrito:

Hola Rodrilobo

Para conseguir un control personalizado a partir de uno existente, puedes
probar a crear una clase que herede de dicho control y reemplazar los métodos
que desencadenan los eventos correspondientes al comportamiento que necesitas
adaptar a tus requerimientos.

Tomando como ejemplo un par de las características que has mencionado, a
continuación te acompaño un bloque de código en el que tienes una clase que
deriva de TextBox. Reemplazando el método OnKeyDown detectamos cuándo el
usuario pulsa las teclas arriba-abajo, pasando el foco al control anterior y
posterior. Por otra parte cuando el control obtiene el foco, selecciona todo
el texto y cambia su color de fondo, y finalmente cuando pierde el foco,
devolvemos el color de fondo original.

'/////////////////////////////
Public Class TxtPropio
Inherits TextBox

Protected Overrides Sub OnKeyDown(ByVal e As KeyEventArgs)
MyBase.OnKeyDown(e)

If e.KeyCode = Keys.Down Then
SendKeys.Send("{TAB}")
End If

If e.KeyCode = Keys.Up Then
SendKeys.Send("+{TAB}")
End If
End Sub

Protected Overrides Sub OnGotFocus(ByVal e As EventArgs)
MyBase.OnGotFocus(e)

Me.SelectAll()
Me.BackColor = Color.Aqua
End Sub

Protected Overrides Sub OnLostFocus(ByVal e As EventArgs)
MyBase.OnLostFocus(e)

Me.BackColor = Color.White
End Sub
End Class
'/////////////////////////////

Para probar este control puedes utilizar el siguiente bloque de código
correspondiente a un formulario

'/////////////////////////////
Public Class Form1
Private txt1 As TxtPropio
Private txt2 As TxtPropio

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.txt1 = New TxtPropio()
Me.txt1.TabIndex = 2
Me.txt1.Location = New Point(50, 90)
Me.txt1.Size = New Size(50, 50)
Me.txt1.Text = "uno"

Me.txt2 = New TxtPropio()
Me.txt2.TabIndex = 3
Me.txt2.Location = New Point(50, 120)
Me.txt2.Size = New Size(50, 50)
Me.txt2.Text = "dos"

Me.Controls.AddRange(New Control() {Me.txt1, Me.txt2})
End Sub
End Class
'/////////////////////////////

Espero que estas indicaciones te sirvan de indicación y punto de partida
para crear el control que necesitas.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Rodrilobo" wrote:

> Queridos amigos... Primero desearles un prospero año nuevo...
> Quisiera que alguien me guíe para personalizar un textbox, lo que
> quiero es hacer que actue diferente a lo normal, por ejemplo
> -que pase al siguiente control o el anterior presionando las
> flechas
> -que seleccione todo si presiono hacia arriba
> -crear una validacion numeral decimal
> -que cambie de color cuando esta en foco
>
> mas o menos se que eso es en una clase.. pero he buscado informacion y
> no la he encontrado, en el guille me encontre un ejemplo pero no me
> funciono...
>
> por cierto estoy programando en VB 2005 y lo que he encontrado es en VB
> 2003, no se si sea ese el problema...
>
> alguien me ayuda?
>
>

Preguntas similares