lunes, marzo 06, 2006

Saber quién recibe el foco

MENSAJE ORIGINAL"Lucas" wrote:

> Buenas Tardes a todos.
>
> Tengo un TextBox en un formulario y quisiera saber cómo hago para saber cuál
> es el elemento del formulario que recibe el foco después de que el TextBox lo
> pierde.
>
> Lo que exactamente quiero saber es si después de que el TextBox perdió el
> foco se fué a un ListBox que tengo, porque sobre esa base se tiene que
> realizar una determinada acción y si el elemento que recibe el foco no es el
> ListBox pues se debe hacer una acción diferente.
>
> Ojalá alguien pueda ayudarme.
>
> Gracias por su tiempo.

SOLUCIÓN PROPUESTA
Prueba utilizando la propiedad focused del control
me.ListBox1.focused

También puedes usar el Metodo GetNextControl el cual te devuelve una referencia al control siguiente o al anterior dependiendo de los parámetros que le envíes a este método.

Espero te sea de utilidad

REFERENCIA EN EL GRUPO DE NOTICIAS:
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.es.dotnet.vb&mid=ed3b77c5-5f72-4f21-b774-14dbac75c2e8

2 Comments:

At 10:14 AM, Lucas said...

Estoy usando VB .Net 2003 y el control ListBox no tiene la propiedad
focused. Por otro lado, el método GetNextControl, por lo que he averiguado,
depende del orden del TabIndex, por lo que no se ajusta a mis necesides, pues
uno puede ir a cualquier control del formulario después de dejar el TextBox
que mencioné, asi que el orden de los TabIndex no es la referencia que busco.

De todas maneras, gracias por tu tiempo.

 
At 10:24 AM, Raúl Guerrero said...

Prueba con este código

For Each ctrl As Control In Me.Controls
If ctrl.Focused Then TextBox1.Text = ctrl.Name
Next

Esta probado en Vb.NET 2003, lo unico que tienes que tener es un TextBox llamado TextBox1 para que ahi te ponga el valor o cambiar en el codigo TextBox1.Text por una Variable String

Ademas realize un proyecto para que lo veas funcionando y lo puedas debugear.
Se encuentra en:
http://www.geocities.com/jrwarrior/Code/FocusedEnListBox.zip

Te envio un cordial saludo.

Atentamente,
Raúl Guerrero

 

Publicar un comentario en la entrada

<< Home