none
Focus en una ChildWindow RRS feed

  • Pregunta

  • Hola a tod@s!!

    como puede poner el foco en un textbox determinado  cuando se ha cargado una childWindow? he probado a ponerlo en el loaded de la child pero no me hace caso, por otro lado tambien he inentado hacer mediante el evento GotFocus pero no me permite sacar el foco del control por lo que tampoco me sirve. Tambien pense en utilizar el gotFocus y posteriormente quitar el evento (-=(c#) o removeHadler(vb.Net)) pero me quita el foco y no me sirve.

    Alguna solución?

     

    Un saludo!!
    miércoles, 8 de junio de 2011 6:57

Todas las respuestas

  • Hola Ferny,

    Supongo que estamos hablando de Silverlight y no de WPF porque en esta ultima no existen las ChildWindow. Una solucion bastante sencilla sin necesidad de utilizar todos esos eventos es establece el TabIndex="1" en el control que quieres que tenga inicialmente el foco, de modo que si quieres establecerlo en el textbox 2 puedes hacerlo asi:

    <TextBox x:Name="text1" Width="100" Height="30" Text="1" ></TextBox>
    <TextBox x:Name="text2" Width="100" Height="30" Text="2" TabIndex="1"></TextBox>
    <TextBox x:Name="text3" Width="100" Height="30" Text="3"></TextBox>
    

    Escribiendo esto el foco siempre se establece inicialmente en el textbox2.

    Saludos.

     

     

     

     

    • Propuesto como respuesta David_González miércoles, 8 de junio de 2011 9:33
    • Votado como útil ferny6 miércoles, 8 de junio de 2011 10:10
    miércoles, 8 de junio de 2011 9:27
  • hola Jose Alberto!!

     

    poner el tabIndex ya me lo habia planteado y actualmente me funciona, pero el problema que me he econtrado es que si el textbox por ejemplo está agrupado en un Activity o Busy Indicator pues el tabIndex no hace caso y lo mismo ocurre cuando existen varios textBox agrupados. Como se puede solucionar eso?

     

    saludos!!

    miércoles, 8 de junio de 2011 9:50
  • Hola ferny.

    He estado probando con un BusyIndicator y no he conseguido nada. He visto que dependiendo del contenedor en el que se encuentren los textbox el TabIndex funciona o no, asi que es posible que que los controles que has nombrado no tengan implementado ese comportamiento. Si puedes pon tu codigo y lo probare a ver que tal.

    Salu2!!

    miércoles, 8 de junio de 2011 11:01
  • Estuve haciendo unas pruebas, y me funciona con este código dentro del childwindow:

    protected override void OnOpened()
    {
    	base.OnOpened();
    	Dispatcher.BeginInvoke(
    			new Action(delegate()
    			{
    				textBox1.Focus();
    			}));
    }
    


    Nestor Arturo Fernandez Ricaurte
    miércoles, 8 de junio de 2011 12:26
  • hola!!

    El problema persiste si existe una actividad o busyIndicator en la childWondow, para cualquier otro contenedor (grid, stackpanel, canvas, border, etc) no  existe ningún problema. Alguien sabe a que se debe? No es que me falle en mi proyecto en concreto, falla en cualquier aplicacion que se haga en silverlight (actualmente trabajo con la versión 4)

     

    Saludos!!

    jueves, 9 de junio de 2011 9:42
  • Regálanos el XAML de tu ChildWindow para poderlo revisar con más detalle.
    Nestor Arturo Fernandez Ricaurte
    jueves, 9 de junio de 2011 12:34