Pregunta

Quiero evitar que el usuario maximizar el formulario Windows a pantalla completa, así que he desactivado el botón Maximizar. Sin embargo, quiero ser capaz de tener el usuario 'restaurar' el formulario. Cuando hagan clic en el botón Restaurar quiero que muestran una, más pequeña, minified, forma diferente, lo que les mostrará un botón de maximizar lo que devolverá el uso de la forma original.

¿Hay una manera de hacer esto?

Gracias.

editar: Usted no entiende, no estoy impidiendo que el usuario cambiar el tamaño de la forma. Qué está sucediendo es cuando el clic en el botón de restauración, se ocultará la forma y abrir una nueva con menos controles en él. Cuando haga clic en Maximizar en la forma más pequeña, que volverá a su forma original.

¿Fue útil?

Solución

Miré a un problema similar a este en el trabajo y las únicas soluciones que pude encontrar de ajuste involucrados estilos de ventana sin papeles, que yo no estaba dispuesto a hacer.

Por lo tanto la mejor solución a su problema yo creo que sería para ocultar minimizar la corriente / maximizar / restaurar los botones y añadir su propio uso de algunos comandos OwnerDraw u otros.

En cuanto a esto desde una perspectiva de interacción con el usuario querría los botones minimizar / maximizar / restaurar a hacer exactamente lo mismo para su aplicación como lo hacen para todos los demás. Anulación de la funcionalidad que crearía confusión para los usuarios, por lo tanto, por lo que recomendaría la creación de diferentes botones, ya sea en la barra de título o en otro lugar de su interfaz que realizan esta función.

Otros consejos

Fwiw, la respuesta correcta es hacer que su tamaño de formulario correctamente, adaptándose a cualquier tamaño de ventana y no limita al usuario a lo que se ve a la derecha en pantalla en su resolución y su tamaño de la fuente. ventanas de tamaño variable no son una de las cosas más molestas que me encuentro en una aplicación (Windows en sí está lleno de ellos).

Es posible ajustar el MaximumSize y MinimumSize y activar el botón de maximizar para obtener este tipo de efecto.

Yo tenía una situación similar hace poco, y desde una perspectiva de diseño de interfaz de usuario, encontré un buen ejemplo en Windows Media Player. Se deja al minimizar, maximizar y restaurar los botones, ya que son, y tiene un botón separado en la parte inferior derecha de "Cambiar a modo compacto". Y en el modo de mini / compacto, el mismo botón cambia a "Cambiar a modo completo". Otro ejemplo alternativo es Skype, que tiene un botón adicional icono del sistema justo a la izquierda de la norma botón de minimizar, que alterna entre los modos estándar y compactos.

(Si tuviera el privilegio, yo hubiera preferido poner esto como un comentario que añadir a respuesta aceptada de Daemin, todavía relativamente nuevo en stackoverflow)

'Restaurar' una forma activa el Resize evento en el que se puede comprobar si el formulario principal ya no es FormWindowState.Maximized. Si no es así, puede abrir el formulario secundario y ocultar los padres.

Para revertir esto, se puede 'maximizar' el formulario secundario al ocultar (o eliminación), y luego des-ocultar y establecer la forma del padre a <=>.

El único problema que veo con este método es que el <=> acontecimiento probablemente disparar varias veces antes de la forma alcanza un estado Maximumized. Una bandera puede ser necesaria para ignorar estos hasta que la forma va desde el estado actual al estado deseado, que puede causar un bucle infinito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top