No coger el foco los controles.

10/11/2003 - 22:29 por Jose Antonio | Informe spam
Hay alguna forma de evitar que un control coja el foco sin terner que
deshabilitarlo?


Saludos

Preguntas similare

Leer las respuestas

#6 Jose Antonio
15/11/2003 - 19:00 | Informe spam
Tienes razon en lo que comentas, pero hay veces que GotFocus es la unica
solucion para tener certeza de cuando el control coge el foco.
Si en una aplicacion MDI tu tienes dos formularios abiertos para moverte
entre ellos, cuando tienes el foco en un control del primero de estos
formularios y pasas con el raton por ejemplo al segundo formulario, este
control no lanza Leave, pero si LostFocus, y cuando vuelves al primer
formulario a este control que tenia el foco no produce un evento Enter, pero
si el GotFocus.

Microsoft recomienda no utilizar los eventos que curiosamente so los que
funcionan bien.


Saludos.

"Jose Campos" escribió en el mensaje
news:%
Pues no utilices los eventos GotFocus y LostFocus, usa en su lugar Enter y
Leave, mira lo que dice la ayuda de VS sobre estos eventos:

Los eventos del foco se producen en el siguiente orden:

1.. Enter
2.. GotFocus
3.. Leave
4.. Validating
5.. Validated
6.. LostFocus
Nota Los eventos GotFocus y LostFocus son eventos de foco de bajo


nivel
asociados a los mensajes de Windows WM_KILLFOCUS y WM_SETFOCUS.


Normalmente,
los eventos GotFocus y LostFocus sólo se utilizan al actualizar UICues.


Los
eventos Enter y Leave deben utilizarse para todos los controles, a


excepción
de la clase Form, que utiliza los eventos Activated y Deactivate.

PRECAUCIÓN No intente establecer el foco desde el controlador del


evento
LostFocus. Esto puede dar lugar a que la aplicación o el sistema operativo
no respondan. Para obtener más información sobre el evento LostFocus, vea


el
tema WM_KILLFOCUS en la sección Keyboard Input Reference, y el tema


Message
Deadlocks en la sección Messages and Message Queues de la documentación de
Platform SDK en MSDN Library.
"Jose Antonio" escribió en el mensaje
news:
> Esta opcion no funciona bien si se realizan acciones en los eventos
GotFocus
> y LostFocus.
>
>
> Saludos
> "Jose Campos" escribió en el mensaje
> news:%233LjeV%
> > Prueba asignando al evento Enter del control la siguiente función:
> >
> >
> > private void Control_Enter(object sender, System.EventArgs e)
> > {
> > if ( ((Control)sender).TabStop == false )
> > {
> > SendKeys.Send("{TAB}"); // tambien se puede dirigir
el
> > foco a otro control
> > return;
> > }
> > }
> >
> >
>
>


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