Formularios sin botones al maximizar
Pregunta
¿Qué es lo que tengo que hacer para que al maximizar un formulario no aparezcan los botones de cerrar, minimizar o restaurar? Tengo una serie de formularios a los cuales he puesto las propiedades:
– Cuadro de control: No
– Botones Minimizar Maximizar: Ninguno
– Botón cerrar: No
con la intención de que sea el programa el que controle cuando se visualiza o se esconde un formulario, obligando al usuario a utilizar los botones que he puesto para tal efecto.
Esto funciona bien cuando el formulario está en vista normal (no aparece ningún botón del cuadro de control en el formulario), pero cuando se maximiza, aparece en la parte superior derecha un botoncito que permite restaurar el formulario.
¿Hay alguna manera de hacer desaparecer este botoncito?
Respuesta
Cuando un formulario está maximizado, su “cuadro de control” no le pertenece a él, sino a la barra de menús activa (no a una barra de herramientas normal, sino a una que tenga su propiedad Type con el valor msoBarTypeMenuBar. Por ejemplo, la barra de menús típica con las opciones Archivo, Edición, Ver, etc). Sabiendo esto, si desactivamos la barra de menús activa y maximizamos nuestro formulario, veremos que ya no aparece botón alguno.
Esto podría solucionar el tema de los botones, pero sin embargo nos dejaría sin la barra de menús que esté activa (sea la predeterminada de Access o una personalizada que utilicemos en nuestra aplicación). Si no queremos perder la funcionalidad de la barra de menús podemos “duplicar” la barra de menús que utilicemos pero transformándola en una barra de herramientas normal. De esta forma, tendremos nuestro menú igualmente operativo, pero, al no ser una barra de herramientas tipo menú, no construirá esos botoncitos que no queremos tener.
En el caso de que todo esto lo queráis implementar a través de código, he puesto un ejemplo adjunto, con una base de datos de ejemplo, en el que podemos maximizar y restaurar un formulario, pero sólo a través de un botón que hemos puesto nosotros mismos. Al cargarse este formulario, se crea una nueva barra de herramientas que duplica todos los controles del menú predeterminado de Access y que sustituirá a éste mientras el formulario esté abierto. Esto permitirá que al maximizarse el formulario no se visualice ningún botón para restaurarlo (ni tampoco para minimizarlo o cerrarlo, naturalmente).
Espero que os sirva.
Ejemplo
Créditos
con el fin de dar a conocer el trabajo de uno de los más grandes en el mundo de Access en español, y tras solicitar su permiso, replico este artículo de Juan M Afán de Ribera. Todos los derechos y autoría corresponden a él. Access & VBA FAQ – Formularios sin botones al maximizar. (archive.org)
Función para numerar registros en un formulario continuo (o tabular)
Código para seleccionar diferentes elementos de un cuadro de lista o listbox