none
Pregunta respecto al .Focus() vb.net RRS feed

  • Pregunta

  • Buen día. 
    Tengo una pregunta bastante sencilla, pero quizás algo complicada de explicar por aquí. Si no se entiende por favor me dicen e intento reformularla.
    Tengo una pregunta respecto al .Focus()
    Tengo un PanelContenedor que dentro de el tiene dos paneles. (este posee autoscrollbar)
    El primer Panel tiene el ancho exacto del PanelContenedor y esta ubicado en su misma ubicación, es decir, inician y terminan en el mismo lugar.      
    El segundo panel tiene también tiene el ancho exacto del PanelContendor,  pero su ubicación no es misma, esta ubicado un par de centímetros a partir de donde inicia el PanelContenedor. 
    Digamos que el primer panel esta ubicado en 0,500 y el segundo en 60,500.
    Mi programa se maneja haciendo .Focus() a los paneles para saber con cual esta trabajando. Cuando le hago clic al primer panel esta todo correcto, el problema es cuando le hago clic al segundo...ya que me mueve el ScrollBar del PanelContenedor. (esto lo hace para que el inicio del segundo panel quede alineado con el inicio del PanelContenedor).
    Ahora viene la pregunta! Y disculpen por tantas vueltas. 
    Hay alguna forma de hacerle .Focus() al segundo panel y evitar que me mueve el ScrollBar?
    EL SCROLLBAR NO LO PUEDO SACAR, YA QUE TAMBIÉN LO NECESITO. Así que esa no es una opción. 
    Saludos! y espero que se entienda.
    lunes, 8 de enero de 2018 10:56

Respuestas

  • Si entiendo bien tu pregunta, la solución es bastante simple, Antes de darle el foco al segundo panel cambia su posición a la del que aparece por defecto, es decir el top y left hazlo igual al del que aparece por defecto, así se superpondrá al defecto. Claro que si quieres luego ver nuevamente el defecto, tiene que colocar al que moviste a su posición original o hacerlo invisible

    MGilt

    Hola, gracias por tu respuesta. Sucede que no puedo moverlo ya que se encuentra en esa posición por una razón. 
    Por el momento encontré la siguiente solución:
    PanelContenedor.AutoScrollPosition = New Point(0, 0)
    Mover el Scroll al inicio, se que no es lo mejor...pero por el momento servirá. 
    Saludos! 
    • Marcado como respuesta Mauroo lunes, 8 de enero de 2018 14:01
    lunes, 8 de enero de 2018 14:00

Todas las respuestas

  • Si entiendo bien tu pregunta, la solución es bastante simple, Antes de darle el foco al segundo panel cambia su posición a la del que aparece por defecto, es decir el top y left hazlo igual al del que aparece por defecto, así se superpondrá al defecto. Claro que si quieres luego ver nuevamente el defecto, tiene que colocar al que moviste a su posición original o hacerlo invisible

    MGilt

    lunes, 8 de enero de 2018 12:38
  • Si entiendo bien tu pregunta, la solución es bastante simple, Antes de darle el foco al segundo panel cambia su posición a la del que aparece por defecto, es decir el top y left hazlo igual al del que aparece por defecto, así se superpondrá al defecto. Claro que si quieres luego ver nuevamente el defecto, tiene que colocar al que moviste a su posición original o hacerlo invisible

    MGilt

    Hola, gracias por tu respuesta. Sucede que no puedo moverlo ya que se encuentra en esa posición por una razón. 
    Por el momento encontré la siguiente solución:
    PanelContenedor.AutoScrollPosition = New Point(0, 0)
    Mover el Scroll al inicio, se que no es lo mejor...pero por el momento servirá. 
    Saludos! 
    • Marcado como respuesta Mauroo lunes, 8 de enero de 2018 14:01
    lunes, 8 de enero de 2018 14:00