Foros del Web » Programación para mayores de 30 ;) » .NET »

Resaltar un TextBox cuando tiene foco!

Estas en el tema de Resaltar un TextBox cuando tiene foco! en el foro de .NET en Foros del Web. Hola a todos...soy nuevo por aqui asi que me inauguro con esta pequeña duda: ¿Como hacer que un textbox, u otro tipo de control, se ...
  #1 (permalink)  
Antiguo 16/04/2008, 10:02
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Mensaje Resaltar un TextBox cuando tiene foco!

Hola a todos...soy nuevo por aqui asi que me inauguro con esta pequeña duda:

¿Como hacer que un textbox, u otro tipo de control, se resalte cuando el usuario lo selecciona, es decir, cuando el control obtiene el focus?

Estoy desarrollando una pequeña aplicación y es preciso que cuando el usuario se vaya moviendo con el tabulador por los distintos controles vea con claridad cual es el que tiene el foco en cada momento (resaltandolo, cambiando el color de fondo, cambiando el color del borde...)


He buscado pero no he encontrado nada que me ayude. Son muchos controles así que no me sirve programar el evento OnFocus para cada uno de ellos, porque me eternizaría. Necesito un método general que funcione y que pueda reutilizar en todos los formularios.

A ver qué se os ocurre.
Gracias de antemano!
  #2 (permalink)  
Antiguo 16/04/2008, 11:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 173
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Resaltar un TextBox cuando tiene foco!

hola, para cada textbox en su evento enter y leave

Código:
    Private Sub TextBox2_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
        TextBox2.BackColor = Color.Azure
    End Sub

    Private Sub TextBox2_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.Leave
        TextBox2.BackColor = Color.White
    End Sub
espero t sirve ahi em cuentas k tal t funciono
  #3 (permalink)  
Antiguo 16/04/2008, 14:52
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Re: Resaltar un TextBox cuando tiene foco!

Sí, seguro que funciona, pero no me vale!

Tengo decenas de textbox y otros controles, y si voy haciendo eso uno a uno voy a tardar unas cuantas horas. Tiene que haber una forma mas sencilla y que afecte de manera global...no se os ocurre nada?

  #4 (permalink)  
Antiguo 16/04/2008, 15:19
Avatar de royrojas  
Fecha de Ingreso: diciembre-2004
Mensajes: 458
Antigüedad: 19 años, 4 meses
Puntos: 3
Re: Resaltar un TextBox cuando tiene foco!

lo que debes hacer es un UserControl que tenga un textbox y lo replicas o
creas una clase que herede de la clase de Foms.TextBox y le agregas esa propiedad y utilizas ese control en todo lugar donde necesites el texbox.
asi haces el cambio en un solo lugar y listo, se aplica para todos.
__________________
roy rojas
Programación en Español: DotNetcr.com
  #5 (permalink)  
Antiguo 16/04/2008, 15:26
Avatar de sagma  
Fecha de Ingreso: septiembre-2004
Ubicación: Santa Cruz de la Sierra - Bolivia
Mensajes: 136
Antigüedad: 19 años, 7 meses
Puntos: 1
Re: Resaltar un TextBox cuando tiene foco!

Espero te sirva, esto lo saque de alguna parte de la web.

Código:
    Private Sub TieneFoco(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim miTextBox As TextBox
        miTextBox = CType(sender, TextBox)
        miTextBox.BackColor = Color.Yellow
    End Sub

    Private Sub PierdeFoco(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim miTextBox As TextBox
        miTextBox = CType(sender, TextBox)
        miTextBox.BackColor = Color.White
    End Sub

    Sub Color_Textbox()
        Dim ctrl As Control
        For Each ctrl In Me.gbx_general.Controls
            If (TypeOf (ctrl) Is TextBox) Then
                Dim miTextBox As TextBox
                miTextBox = CType(ctrl, TextBox)
                AddHandler miTextBox.Enter, AddressOf TieneFoco
                AddHandler miTextBox.Leave, AddressOf PierdeFoco
            End If
        Next
    End Sub
solo llama al Color_textbox desde el evento load.

suerte
__________________
Sagma -- :arriba:
  #6 (permalink)  
Antiguo 17/04/2008, 01:21
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Re: Resaltar un TextBox cuando tiene foco!

Gracias sagma, era justo lo que estaba buscando! Pero algo falla...

Cuando el control tiene foco va bien, pero cuando pulso TAB para cambiar al siguiente textbox...no cambia! Se queda en el mismo textbox. Si desactivo el evento PierdeFoco sí que cambia de textbox al pulsar TAB, pero se necesita dicha funcion activa para que el tema sirve de algo

¿Por que sera que no cambia al pulsar TAB? Hace como un amago de cambiar, pero vuelve al mismo control. Es extraño
  #7 (permalink)  
Antiguo 17/04/2008, 07:44
Avatar de sagma  
Fecha de Ingreso: septiembre-2004
Ubicación: Santa Cruz de la Sierra - Bolivia
Mensajes: 136
Antigüedad: 19 años, 7 meses
Puntos: 1
Re: Resaltar un TextBox cuando tiene foco!

hola amigo, chatarrero, ese código, tanto en el 2003 como en el 2005 me funciona de maravillas, y no he tenido ningún problema.
__________________
Sagma -- :arriba:
  #8 (permalink)  
Antiguo 18/04/2008, 01:55
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Re: Resaltar un TextBox cuando tiene foco!

Pues no se entonces... Yo tengo el 2005 y programo en C# (he traducido tu codigo a C#) y funcionar funciona. Cambio de campos con el ratón y hace lo que tiene que hacer. Lo que pasa es que el Tabulador (TAB) no funciona con este código. Lo quito y todo va bien, lo vuelvo a poner y deja de funcionar el tabulador, con lo que solo me queda ir saltando de campo en campo con el ratón...pero no puede ser así.

¿No se te ocurre por qué puede ser? Es bastante extraño...

  #9 (permalink)  
Antiguo 18/04/2008, 02:24
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Re: Resaltar un TextBox cuando tiene foco!

He hecho unas pruebas y lo que ocurres es MUY raro...

Lo que he averiguado es que el TAB sí que funciona, solo que en lugar de saltar al siguiente textbox salta al textbox actual! Lo pulso 30 veces y sigue saltando al control actual

¿Que pasa?? Que tiene esto que ver con las funciones de antes...que si las quito el salto con el TAB funciona sin problemas..

...Estoy desesperado
  #10 (permalink)  
Antiguo 18/04/2008, 12:39
Avatar de sagma  
Fecha de Ingreso: septiembre-2004
Ubicación: Santa Cruz de la Sierra - Bolivia
Mensajes: 136
Antigüedad: 19 años, 7 meses
Puntos: 1
Re: Resaltar un TextBox cuando tiene foco!

como te digo, a mi, me funciona bien, pero con Visual Basic, ya sea en el 2003 y en el 2005.
__________________
Sagma -- :arriba:
  #11 (permalink)  
Antiguo 23/04/2008, 13:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 173
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Resaltar un TextBox cuando tiene foco!

no sera que tienes algo mal en tu sintaxis de c#???? por k no pegas todo el codigo? o alomejor una version no actualizada del visual!! o ps ya d plano trata en otra pc y si funciona quiere decir que alomejro lo tienes mal instalado o algun archivo se danio :S
  #12 (permalink)  
Antiguo 28/04/2008, 11:57
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Re: Resaltar un TextBox cuando tiene foco!

He probado en otros forms de la aplicación y funciona, pero en unos cuantos me ocurre lo dicho antes: el tabulador deja de funcionar y tengo que saltar de campo en campo con el ratón.

Trabajo con Visual Studio 2005...
  #13 (permalink)  
Antiguo 05/05/2008, 05:31
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Solucionado!

El error de tabulación ya está. Ahora los forms tabulan perfectamente. Solo hay que meter este codigo:

Código:
  protected override bool ProcessCmdKey(ref Message m, Keys keyData)
        {
            bool blnProcess = false;

            if (keyData == Keys.Tab)
            {
                Control c = GetNextControl(this.ActiveControl, true);
                if (c is Label)
                {
                    c = GetNextControl(this.ActiveControl, true);
                }


                return c.Focus();
            }
            return false;
        }
  #14 (permalink)  
Antiguo 07/06/2008, 10:01
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Resaltar un TextBox cuando tiene foco!

Hola, no se si aun lo has solucionado, y sino que le sirva para otra persona que tenga dudas.

Una manera sencilla de hacerla es la siguiente:

Crea dos metodos como el siguiente:

private void ResaltaTxtbox_Onenter(object sender, Enventargs e)

e.color = el que vos le quieras asignar


y para dejarlo nuevamente con su color original:

private void DevolverColortxtBox_onleave(object sender, Eventargs e)

e.color = el que tenia al principio.

Ahora seleccionas los textbox que quieras aplicarle esto , y en la pestaña de propiedades - eventos en el evento On_enter le asginas ResaltaTxtbox_Onenter
y en el evento on_leave asignas DevolverColortxtBox_onleave.

saludos!
  #15 (permalink)  
Antiguo 17/06/2008, 14:24
(Desactivado)
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Resaltar un TextBox cuando tiene foco!

hola a todos que tal
quisiera saber como se hace un formulario de inscripcion en mi web

pues quisiera que me explicaran bien como se le tiene que hacer

quisiera colocar el formulario de inscripcion y que cuando llenen los datos mande un mensaje a su correo y que ya pueda usar su usuario y contrasena algo asi e estado buscando pero no encuentro como hacerlo

de antemano gracias...
  #16 (permalink)  
Antiguo 28/11/2011, 10:34
 
Fecha de Ingreso: junio-2010
Ubicación: Lima
Mensajes: 1
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Resaltar un TextBox cuando tiene foco!

un favor , como hago para convertir este procedimiento de vb.net a C#.

Sub Color_Textbox()
Dim ctrl As Control
For Each ctrl In Me.gbx_general.Controls
If (TypeOf (ctrl) Is TextBox) Then
Dim miTextBox As TextBox
miTextBox = CType(ctrl, TextBox)
AddHandler miTextBox.Enter, AddressOf TieneFoco
AddHandler miTextBox.Leave, AddressOf PierdeFoco
End If
Next
End Sub

es urgente porfavor, gracias :D
  #17 (permalink)  
Antiguo 28/11/2011, 12:53
 
Fecha de Ingreso: octubre-2011
Mensajes: 114
Antigüedad: 12 años, 6 meses
Puntos: 14
Respuesta: Resaltar un TextBox cuando tiene foco!

entra a esta pagina
http://www.carlosag.net/Tools/CodeTranslator/

se salio del titulo la pregunta, pero ahí está la respuesta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:54.