No consigo centrar un formulario tipo diálogo

Tengo un formulario que lo abro como diálogo, pero no me queda centrado en la pantalla. El problema viene por el comportamiento que le tengo asignado: al abrir, te encuentras un cuadro de opciones, y, en función de la que elijas, se muestran más opciones. AsÍ:

Como podéis ver, me lo muestra arriba del todo. Creo que esto es debido a que yo establezco el ancho del formulario, primero al abrir el formulario, y luego en función de la opción escogida de esta manera:

        Me.Form.InsideHeight = 3458.267716535

¿Alguien sabe cómo puedo solucionar esto?

3 Respuestas

Respuesta
2

Diego: Ciertamente necesitas según yo lo veo el DoCmd. MoveSize

https://docs.microsoft.com/es-es/office/vba/api/access.docmd.movesize 

Los parámetros son opcionales y si no pones alguno has de poner la coma.

Ejemplo: DoCmd. MoveSize, 500

Te lo mueve 500 Twips abajo. Debes ir probando en base a que mm/0,017639 = Twips

En tu caso, si lo quieres mover 10 mm hacia abajo serían >> 567

Un saludo >> Jacinto

Respuesta
2

Supongo que lo habrás probado, pero...¿le pusiste la propiedad "centrado automático" (o algo parecido ) en Sí a esos formularios?

Lo digo para que no andes probando distancias, que, por otro lado, si cambias de ordenador o de resolución, puede que no te quede centrado.

Sí, claro. Antes del cambio que he hecho ahora, que es acortar el formulario para que no se muestre tan grande con opciones ocultas, me lo centraba perfectamente. El problema ahora ha sido ese, que, al reducir el alto, creo que lo centra con el alto original del formulario, no sé si me explico.

¡Gracias!

Yo probaría a hacerle las modificaciones (ocultar opciones, cambiarle el alto...) en vista diseño, guardar y abrirlo desde el formulario que lo llama, así, el centrado automático no tendrá problema.

Es decir, donde tu pones DoCmd. OpenForm "nombreFormulario",,,,, acDialog (o similar), pones:

DoCmd. OpenForm "nombreFormulario", acDesign
Forms("nombreFormulario").ControlX.Visible=False
...
Forms("nombreFormulario").InsideHeight=3458.26
DoCmd. Close acForm,"nombreFormulario", acSaveYes
DoCmd. OpenForm "nombreFormulario",,,,, acDialog 

Y obviamente eliminar lo que tienes en el evento "Al cargar" para darle tamaño y lo mismo con el resto de códigos para mostrar/ocultar opciones

Hola. Eso es lo mejor, que en el evento Al Cargar solo tengo el InsideHeight, que ya he pasado al formulario desde lo llama. El resto de código que oculta o muestra cosas es después de actualizar el cuadro con las tres opciones que puedes ver en la imagen. Obviamente, no puedo ponerlo en el formulario desde donde llama.

Sin embargo, poniendo el código como me has dicho, no me lo coge. Creo que me tiraré por la opción de Jacinto. No creo que por bajar 10 mm me vaya a salir de cualquier pantalla.

¡Gracias!

Respuesta
1

Lo que me gustaría conseguir sería que baje un poco. Sin embargo, si utilizo la función de VBA para mover, me pide que establezca un margen a la izquierda, y ahí es donde se fastidia todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas