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?

Preguntas similare

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?
>
>
Respuesta Responder a este mensaje
#2 Luis Miguel Blanco
11/01/2007 - 08:20 | Informe spam
No hay de qué, celebro mucho que los ejemplos que te envié te hayan servido 8-)
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Rodrilobo" wrote:

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?
> >
> >


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida