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

Impedir que un control coja el foco

Estas en el tema de Impedir que un control coja el foco en el foro de .NET en Foros del Web. Existe alguna propiedad para evitar que un control tipo Textbox no pueda ser focuseado? (Sin utilizar la propiedad Enable = false o mover el foco ...
  #1 (permalink)  
Antiguo 07/11/2008, 07:41
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 15 años, 6 meses
Puntos: 0
Impedir que un control coja el foco

Existe alguna propiedad para evitar que un control tipo Textbox no pueda ser focuseado? (Sin utilizar la propiedad Enable = false o mover el foco a otro control cuando este lo recive.)

Encontre la propiedad CanFocus, pero es de solo lectura.

Última edición por SbsXrX; 07/11/2008 a las 11:00
  #2 (permalink)  
Antiguo 10/11/2008, 17:16
 
Fecha de Ingreso: abril-2008
Ubicación: Córdoba
Mensajes: 103
Antigüedad: 16 años
Puntos: 4
De acuerdo Respuesta: Impedir que un control coja el foco

Mirá, si tenes muchos controles en el formulario hacé esto:

En el evento GOTFOCUS de Textbox poné el siguiente código:
Cita:
Sendkeys.Send("{TAB}") ' Envias la tecla tab para pasar al siguiente control y evitar Focus
Así de facil, un saludo.
  #3 (permalink)  
Antiguo 11/11/2008, 07:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Impedir que un control coja el foco

pero eso haria que el control anterior perdiera el foco y se lo traspasase al siguiente en el listado de controles ej-

textbox1
textbox2
textbox3

boton1 boton2

Inicialmente el foco esta en boton1, si no quiero que lo reciva el textbox1 con tu metodo pasaria al siguiente control que podria ser textbox2 o textbox3 o boton2 dependiendo del tabindex, pero yo no quiero que el boton1 pierda el foco si el control tiene la opcion de no recivir el foco. Imaginate que estoy en textbox3 y hago clink en textbox1 y el foco aparece en el textbox2, no tiene sentido.

Muchas gracias igual.
  #4 (permalink)  
Antiguo 11/11/2008, 10:57
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Impedir que un control coja el foco

Pues si lo que quieres es que el Boton1 siempre tenga el foco, ponlo en el evento LostFocus que se le vuelva a poner y listo tio....
__________________
Charlie.
  #5 (permalink)  
Antiguo 11/11/2008, 11:13
 
Fecha de Ingreso: abril-2008
Ubicación: Córdoba
Mensajes: 103
Antigüedad: 16 años
Puntos: 4
De acuerdo Respuesta: Impedir que un control coja el foco

Entonces hacé como dicen arriba:

En el evento LostFocus del Button1 (o como se llame), ponés el siguiente codigo:

Cita:
Button1.Focus()
Y listo, el Button1 nunca perderá el foco

Un saludo.-
  #6 (permalink)  
Antiguo 12/11/2008, 02:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Impedir que un control coja el foco

A ver puse un ejemplo, no dije que queria que el boton1 no perdiese el foco. la pregunta es: ¿existe una propiedad de textbox que impida que el control reciva el foco?

Gracias gente. pense que era algo mas simple.
  #7 (permalink)  
Antiguo 12/11/2008, 03:48
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Impedir que un control coja el foco

Cita:
Iniciado por SbsXrX Ver Mensaje
A ver puse un ejemplo, no dije que queria que el boton1 no perdiese el foco. la pregunta es: ¿existe una propiedad de textbox que impida que el control reciva el foco?

Gracias gente. pense que era algo mas simple.
Bueno, este código no es muy ortodoxo pero sí efectivo.

Se trata de guardar en una variable el nombre del último control que tenía el foco y al tomar el foco el control que no queremos que lo reciba (en el ejemplo es TextBox1) se lo devuelve al control anterior.

Código PHP:
Public Class Form1
    
Private UltimoControl As Control

    
Private Sub Button1_GotFocus(ByVal sender As ObjectByVal e As System.EventArgsHandles Button1.GotFocus
        UltimoControl 
Button1
    End Sub

    
Private Sub Button2_GotFocus(ByVal sender As ObjectByVal e As System.EventArgsHandles Button2.GotFocus
        UltimoControl 
Button2
    End Sub
    
Private Sub TextBox1_GotFocus(ByVal sender As ObjectByVal e As System.EventArgsHandles TextBox1.GotFocus
        Dim ElControl 
As New Control
        ElControl 
UltimoControl
        ElControl
.Focus()
    
End Sub

    
Private Sub TextBox2_GotFocus(ByVal sender As ObjectByVal e As System.EventArgsHandles TextBox2.GotFocus
        UltimoControl 
TextBox2
    End Sub

    
Private Sub TextBox3_GotFocus(ByVal sender As ObjectByVal e As System.EventArgsHandles TextBox3.GotFocus
        UltimoControl 
TextBox3
    End Sub

End 
Class 
El inconveniente es que tienes que repetir el mismo código en todos los controles del formulario (quizá haya alguna forma mas sencilla de hacerlo, pero ahora no se me ocurre ninguna).

  #8 (permalink)  
Antiguo 12/11/2008, 03:48
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Impedir que un control coja el foco

Pues ponerlo a Disabled tio....
__________________
Charlie.
  #9 (permalink)  
Antiguo 12/11/2008, 04:00
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Impedir que un control coja el foco

Cita:
Iniciado por chcma Ver Mensaje
Pues ponerlo a Disabled tio....
No quiero que tenga el efecto que tiene los controles cuando no estan habilitados y por eso justamente dije en el primer post: sin tener que poner la propiedad enable=true. Muchas gracias igualmente compi.
  #10 (permalink)  
Antiguo 12/11/2008, 04:02
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Impedir que un control coja el foco

Cita:
Iniciado por Avellaneda Ver Mensaje
Bueno, este código no es muy ortodoxo pero sí efectivo.

Se trata de guardar en una variable el nombre del último control que tenía el foco y al tomar el foco el control que no queremos que lo reciba (en el ejemplo es TextBox1) se lo devuelve al control anterior.

Código PHP:
Public Class Form1
    
Private UltimoControl As Control

    
Private Sub Button1_GotFocus(ByVal sender As ObjectByVal e As System.EventArgsHandles Button1.GotFocus
        UltimoControl 
Button1
    End Sub

    
Private Sub Button2_GotFocus(ByVal sender As ObjectByVal e As System.EventArgsHandles Button2.GotFocus
        UltimoControl 
Button2
    End Sub
    
Private Sub TextBox1_GotFocus(ByVal sender As ObjectByVal e As System.EventArgsHandles TextBox1.GotFocus
        Dim ElControl 
As New Control
        ElControl 
UltimoControl
        ElControl
.Focus()
    
End Sub

    
Private Sub TextBox2_GotFocus(ByVal sender As ObjectByVal e As System.EventArgsHandles TextBox2.GotFocus
        UltimoControl 
TextBox2
    End Sub

    
Private Sub TextBox3_GotFocus(ByVal sender As ObjectByVal e As System.EventArgsHandles TextBox3.GotFocus
        UltimoControl 
TextBox3
    End Sub

End 
Class 
El inconveniente es que tienes que repetir el mismo código en todos los controles del formulario (quizá haya alguna forma mas sencilla de hacerlo, pero ahora no se me ocurre ninguna).

Es lo que tengo echo, pero como tu dices, no es muy ortodoxo jejeje
Tiene que haber alguna propiedad o algo sencillo y elegante.

Un saludo y muchas gracias por el aporte.
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 04:13.