Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

formulario con muchos controles y scroll vertical

Estas en el tema de formulario con muchos controles y scroll vertical en el foro de Visual Basic clásico en Foros del Web. Hola buenos días Debo realizar un formulario que dispone de alrededor de unos 80 controles (entre etiquetas, cuadros de texto, combos, cuadros de lista, casillas ...
  #1 (permalink)  
Antiguo 08/03/2005, 07:35
 
Fecha de Ingreso: mayo-2003
Ubicación: España
Mensajes: 44
Antigüedad: 21 años
Puntos: 2
formulario con muchos controles y scroll vertical

Hola buenos días

Debo realizar un formulario que dispone de alrededor de unos 80 controles (entre etiquetas, cuadros de texto, combos, cuadros de lista, casillas de verificación y de opciones y un par de botones). Aunque suene un poco raro, no es posible reorganizar todo este conjunto de controles entre varios formularios pues se trata de una serie de casillas, opciones y elecciones comunes donde el usuario debe enviar su selección a una base de datos (a lo sumo, podría repartir los controles por pestañas, según "secciones" pero prefiero no hacerlo para evitarle trabajo ("clicks") al usuario)

El problema es que no sé cuál es la forma más adecuada de insertar tantos controles en un formulario y ofrecer al usuario una barra de scroll vertical (o unos botones, arriba/abajo) para poder desplazarse por toda "la superficie" del formulario. VB trae unos controles de scroll (VScrollBar, HScrollBar) pero parecen un poco patateros, no logro que se comporten del todo bien...

¿Qué me recomendáis? Ponerlos sobre el propio formulario y utilizar scrolls independientes?, ¿algún control contenedor que traiga de por sí sus propias arras de scroll facil de usar? ¿uso de un frame como contenedor? Soy todo oidos

Gracias por la atención
__________________
cgomez :ojotes: miportal.es
  #2 (permalink)  
Antiguo 08/03/2005, 08:51
Avatar de vbx3m  
Fecha de Ingreso: febrero-2005
Ubicación: Venezuela
Mensajes: 524
Antigüedad: 19 años, 3 meses
Puntos: 1
Inserta un PictureBox y el Scroll que vas a utilizar (Hscroll o VScroll) en el form y dentro del PictureBox el colocas los controles y luego usa este codigo:

Private Sub Form_Load()
Picture1.Top = 0
Picture1.Left = 0

With VScroll1 'Si vas a utilizar el Vertical
.Min = 0
.SmallChange = 90
.LargeChange = 300
.Top = 0
.ZOrder 0
End With

With HScroll1 'Si vas a usar el horizontal
.Min = 0
.SmallChange = 90
.LargeChange = 300
.Left = 30
.ZOrder 0
End With

End Sub

Private Sub VScroll1_Change()
Picture1.Top = -VScroll1.Value
End Sub

Private Sub HScroll1_Change()
Picture1.Left = -HScroll1.Value
End Sub

Luego lo que haces es ajustar la propiedad del scroll max de acuerdo al tamaño del picture... Pruebalo... Cualquier otra pregunta...
__________________
ホルヘ・ラファエル・マルティネス・レオン
  #3 (permalink)  
Antiguo 08/03/2005, 11:27
 
Fecha de Ingreso: mayo-2003
Ubicación: España
Mensajes: 44
Antigüedad: 21 años
Puntos: 2
¡Genial vbx3m! Funciona a las mil maravillas

Estuve jugando con el VScroll y la propiedad top del contenedor (usé un frame) pero no lograba averiguar el funcionamiento; utilicé If's para intentar averiguar en ejecución si uno se desplazaba hacia arriba o para abajo, un lío... y nada, no fui capaz. Joder, ¡me lo has resuelto en una sola línea! (Picture1.Top = -VScroll1.Value) Impresionante jaja ;)

He estado probando tu solución y la he usado sin problemas como quería. En mi caso, el picture1 no debe ocupar todo el formulario, tampoco debe estar en la posición 0,0 del mismo. Ocupa un 80% del formulario y queda por debajo, con lo que he usado dos Picture's, uno que sirve como contenedor general y el otro picture que es donde estan los controles y es el que se desplaza arriba / abajo sobre el picture general.

Me sorprende que haya sido tan fácil de verdad (he estado probando tantas cosas que ya comenzaba a desesperarme jeje). Lo único que no entiendo de tu solución es el uso del método ZOrder. He mirado la ayuda MSDN acerca de este método y parece que solo acepta dos valores (0 o 1) y lo define como:

Cita:
Coloca un objeto MDIForm o Form, o un control al principio o al final del orden z dentro de su nivel gráfico
¿Que es el orden z? Yo no he definidido ningún orden z. Me suena de algo pero no sé qué es (algo hay en CSS, para diseño de webs, parecido o igual al ZOrder creo...). He probado a comentar esa sentencia en el código y sigue funcionando (aparentemente) igual.

Un saludo y gracias de nuevo
__________________
cgomez :ojotes: miportal.es
  #4 (permalink)  
Antiguo 08/03/2005, 15:49
Avatar de vbx3m  
Fecha de Ingreso: febrero-2005
Ubicación: Venezuela
Mensajes: 524
Antigüedad: 19 años, 3 meses
Puntos: 1
Me alegra que te funcionara... El Zorder es muy fácil...Te acuerdas de las 3 dimensiones? Alto, ancho y profundo... Eso es el Zorder profundidad... Claro que funciona bien sin eso, lo coloque es para que estuviese en la superficie del picturebox, sin eso tambien funciona bien...
__________________
ホルヘ・ラファエル・マルティネス・レオン
  #5 (permalink)  
Antiguo 08/03/2005, 15:58
 
Fecha de Ingreso: mayo-2003
Ubicación: España
Mensajes: 44
Antigüedad: 21 años
Puntos: 2
OK, comprendido
__________________
cgomez :ojotes: miportal.es
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 09:24.