visual ocultar net mostrar formularios formulario form como winforms visual-studio visual-studio-2010

winforms - ocultar - mostrar un formulario en visual basic 2010



Winforms: ¿cómo mostrar/ocultar elementos en el diseñador? (6)

Estoy tratando de hacer una aplicación de página múltiple usando winforms. Decidí usar varios paneles: cada panel representa una página diferente, así que puedo cambiar entre ellos cuando necesito mostrar contenido diferente.

Mi problema es apilar paneles en la vista de diseñador. Cuando tengo más de 2 paneles de pantalla completa, todos se apilan entre sí y no puedo ver el que creé antes. Hay alguna solución para esto ? Cambiar la visibilidad no afecta la vista de los diseñadores. Piense en ello como una opción similar a Photoshop para mostrar / ocultar capas. Estoy usando Visual C # 2010 Express.


Entonces, ¿desea poder mostrar / ocultar su panel en la Vista de VS Designer (no solo cuando se está ejecutando el ejecutable real) correctamente?

¿Ayudaría algo como this ?

De lo contrario, quizás intente crear controles de usuario personalizados en lugar de paneles que le permitan configurar las propiedades de visibilidad que desee o recurrir a WPF que proporciona este tipo de funcionalidad. Haga clic here para más información.


No estoy seguro de la forma correcta de hacerlo, pero lo que hago en este caso es que los controles jyst make son muy pequeños y más adelante en la ejecución del programa cambio sus tamaños y ubicaciones al inicio.


Si es aceptable para usted, considere usar un control TabControl y coloque cada uno de los controles del Panel en una pestaña diferente. Luego puede ocultar y mostrar la página correcta al cambiar entre pestañas o eliminar y agregar de manera programática la pestaña correspondiente al control.

También puede considerar usar dos ventanas diferentes con diseños diferentes y mostrar el cambio entre ellas.

Si usa más que unos pocos paneles, puede considerar poner cada uno de ellos en un control separado y luego simplemente usar los controles dentro del formulario de la aplicación (es decir, agregarlos programáticamente cuando sea necesario). De esta manera, puede diseñar cada uno de los controles (por lo tanto, cada uno de los contenidos del Panel ) por separado, sin que sean visibles otros Panel .

Cada una de esas sugerencias haría que algunas piezas de UI estén más separadas, lo que puede desearse si cada uno de los diseños que tiene está asociado con una parte separada de la aplicación. Usar esas sugerencias también puede hacer que sea mucho más fácil usar el deisgner para administrar.


Un enfoque que he usado en esta situación es usar la ventana del Explorador de documentos para llevar el panel en el que estoy trabajando al frente.


Utilizo "Traer al frente" o "Enviar para volver" en Formato> Ordenar para administrar este tipo de escenario, pero tiene razón, es una pena que la visibilidad sea solo en tiempo de ejecución (AFAIK).

Aclamaciones


Varias opciones aquí:

  1. Use la vista de Document Outline del Document Outline ( View --> Other Windows --> Document Outline ) para seleccionar el panel que le interese. Puedes hacer clic derecho sobre él y elegir Bring to Front para ponerlo frente a todo lo demás.
  2. Aunque probablemente no sea relevante para lo que estás haciendo, puedes considerar usar un TabControl , con el que puedes jugar visualmente en el momento del diseño. Esta es solo una solución razonable si desea que sus usuarios puedan cambiar manualmente qué panel están viendo.
  3. Considere mover sus paneles en clases personalizadas UserControl y trabaje en ellas por separado. Si el contenido y la lógica de estos paneles son razonablemente autónomos, puede que desee hacerlo de todos modos para reestructurar mejor su código.

Adición : También puede usar un truco que hace que las pestañas de TabControl invisibles para el usuario. Ponga un TabControl en su formulario, y en el tiempo de ejecución establezca la altura del ItemSize del ItemSize en 1. Esto hace que (casi) imposible para el usuario cambiar las pestañas por su cuenta, pero aún le permite cambiar la pestaña visible en el diseñador.

myTabControl.ItemSize = new Size(myTabControl.ItemSize.Width, 1);

Tenga en cuenta que llamé a esto un truco por una razón: TabControl s no estaban destinados a ser utilizados de esta manera. Es algo que parece funcionar, pero como todos los ataques, puede romperse en cualquier momento, por lo que solo debes hacerlo como último recurso (y no me culpes si te causa dolores de cabeza más adelante ...). En resumen, no recomiendo este truco, solo lo ofrezco como una posibilidad.