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

¿Cómo puedo hacer scroll horizontal en un panel con el evento MouseWheel?

Estas en el tema de ¿Cómo puedo hacer scroll horizontal en un panel con el evento MouseWheel? en el foro de .NET en Foros del Web. ¡Buenas! Pues voy al grano: ¿Cómo puedo hacer scroll horizontal en un panel con el evento MouseWheel? Nada más que eso. Quiero que al tener ...
  #1 (permalink)  
Antiguo 07/05/2013, 08:39
Avatar de BillieBert  
Fecha de Ingreso: diciembre-2011
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 1
¿Cómo puedo hacer scroll horizontal en un panel con el evento MouseWheel?

¡Buenas! Pues voy al grano:

¿Cómo puedo hacer scroll horizontal en un panel con el evento MouseWheel?

Nada más que eso. Quiero que al tener presionada la tecla ctrl y hacer scroll con la rueda del mouse, el panel haga scroll horizontal, y que el vertical no se haga.
Ya sé cómo capturar la tecla control con los eventos keydown y keyup en una variable global, pero se me dificulta la "cancelación" del scroll vertical por default, y hacer que lo haga de manera horizontal.

Gracias de antemano.
__________________
La religión y la política pasaron de moda. Lo de hoy es el arte y el idealismo.
  #2 (permalink)  
Antiguo 07/05/2013, 17:55
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: ¿Cómo puedo hacer scroll horizontal en un panel con el evento MouseWheel?

Para "bloquear" scroll vertical haz lo siguiente, crea una variable global llamada "posicionarespetar" y dale de valor -1, cuando el mouse entre en el panel o cuando detectes que se ha pulsado una tecla deberás comprobar si ctrl está pulsado (ya que puede entrar el cursor con ctrl apretado o apretarlo una vez dentro) de estarlo asignas el valor vertical del scroll a la varible que hemos creado, luego en el evento del wheel simplemente siempre que la variable global sea diferente a -1 le asignas al scroll vertical el valor de la que hemos creado
Puedes modificar la posición desde variable panel1.verticalscroll.value (creo que era)

Ojo! Siempre que se produzca mouseleave o keyup sea ctrl deberás poner la variable en -1 para quitar el bloqueo.


Luego en el wheel mirando el valor creo que era event.data o algo asi.. puedes modificar el scroll vertical...

Es que estoy desde el móvil si tienes alguna duda mañana pongo código de ejemplo.
La idea es que guardes el valor del scroll vertical y lo vayas asignando en todos los wheel para bloquearle los cambios.
__________________
@angelxab Twiiter
  #3 (permalink)  
Antiguo 07/05/2013, 23:05
Avatar de BillieBert  
Fecha de Ingreso: diciembre-2011
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: ¿Cómo puedo hacer scroll horizontal en un panel con el evento MouseWheel?

¡Vaya, gracias!

Entendí perfecto todo, menos la parte para evitar que el programa ejecute el scroll por defecto

En esta parte: "Luego en el wheel mirando el valor creo que era event.data o algo asi.. puedes modificar el scroll vertical..."

O sea, hacer que se mueva horizontalmente ya puedo, el problema es evitar que se mueva también verticalmente...

¡Ayuda!
__________________
La religión y la política pasaron de moda. Lo de hoy es el arte y el idealismo.

Etiquetas: evento, horizontal, panel, scroll
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 14:03.