Access - Formulario centrado en la pantalla

   
Vista:

Formulario centrado en la pantalla

Publicado por Jose (15 intervenciones) el 18/10/2015 23:13:05
Hola.

Me gustaría que un formulario se abriera centrado en la pantalla y con unas dimensiones específicas y no sé cómo hacerlo.

Es un formulario dividido con la hoja de datos a la izquierda. Tiene a "Sí" las propiedades Emergente y Modal, y se abre desde un botón en otro formulario con la instrucción
DoCmd.OpenForm "AdmonProgramas", , , , acFormReadOnly, acWindowNormal, "Consulta"

La hoja de datos sólo muestra el campo "nombre". Los otros los he ocultado. He estado "jugando" en el evento open con Me.Width (un buen valor sería 11000) y Me.SplitFormSize (un buen valor para la parte de la hoja de datos sería 5000), pero no lo consigo... Siempre se me abre con medio formulario "fuera" de la pantalla (como desplazado de más hacia la derecha y hacia abajo), se ven columnas de más (vacías) en la hoja de datos y también sale algo más alto de lo deseado (no he visto una propiedad Height).

¿Podéis ayudarme?

¡Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Formulario centrado en la pantalla

Publicado por Enrique Heliodoro (1663 intervenciones) el 18/10/2015 23:56:53
Las dimensiones 'físicas' de un formulario están es sus propiedades InsideHeight y en InsideWith se definen en Twpis (medida interna de Access).

Una forma de obtenerlas sin complicarse mucho consistiría en añadir (temporalmente) un botón y al pulsarlo que las reflejase en la ventana de inmediato o crear dos cuadros de texto y refrescar su valor en cualquier evento que las modificase o ..........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Edinson Vega Urueta

Formulario centrado en la pantalla

Publicado por Edinson Vega Urueta Edinsonvegau@gmail.com (4 intervenciones) el 19/10/2015 00:14:24
1
2
3
4
5
6
Me.InsideHeight = 5000
'Altura del formulario
Me.InsideWidth = 5000
'Ancho del formulario
Me.AutoCenter = True
'Centrado del Formulario

Ubica esto en el evento load y listo espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Formulario centrado en la pantalla

Publicado por Jose (15 intervenciones) el 19/10/2015 13:57:19
Gracias Edison. Lo del Autocenter da error en tiempo de ejecucion. Solo funciona en Diseño, pero me ha servido. Lo que no va es lo del tamaño. No sé si por ser un formulario dividido con la hoja de datos a la izquierda. Aunque en el Load pongo los valores como dices, incluyendo tambien SplitFormSize, no consigo que se vea del tamaño que indico. El valor InsideWidth se cambia y se iguala al de SplitFormSize. También se aumenta el valor de InsideHeight...
Seguro que es una tonteria, pero no atino (?)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Edinson vega urueta

Formulario centrado en la pantalla

Publicado por Edinson vega urueta (4 intervenciones) el 19/10/2015 15:46:34
Listo....

Entonces haz esto:

1. En el formato del Formulario en donde dice centrado automático llévalo a NO

2. En el Código al momento de cargar el Fomulario....

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Load()
on error goto saledelerror
Me.InsideHeight = 5000
'Altura del formulario
Me.InsideWidth = 5000
'Ancho del formulario
Me.AutoCenter = True
'Centrado del Formulario
saledelerror:
Exit sub
Resume next
End Sub

El error de ejecución se te presenta porque como ya haz configurado inicialmente el formulario para que se autocentre al momento del diseño, al momento de ejecución lo que te dice el programa es que ya no puede darle ese atributo otra vez y lanza el error, de la manera que te digo, queda bajo gobierno del código y funciona.

Lo del tamaño realmente es por si deseas cambiar el tamaño o al igual que el centrado gobernarlo por el código, porque realmente el diseño es para eso para determinar estos menesteres así que esa parte se puede obviar


Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar