2011-06-24 15 views
10

C# WinForms: Estoy diseñando mi formulario y tengo un par de TableLauots. entonces diseño mi primera mesa de trabajo, la tiro al panel y pongo Dock-> Top ... luego diseño mi segundo y hago lo mismo y establezco Dock-> Top, va a Top otra vez y bueno, coloca debajo del anterior que estaba en la parte superior ... Diseño el tercero y establezco su dock.top y bueno está debajo del segundo que está debajo del primero ... pero no sé cuál es la diferencia para el cuarto que cuando establezco dock.top, cambia el orden de los otros tres y obtiene lugares en algún lugar entre ellos, no se coloca debajo del tercero ... ¿Alguna idea de a qué debo mirar?Problema con el orden de Dock-> Controles superiores

+0

tal vez pueda usar un gran diseño de flujo y poner todos estos dentro de eso, ¡pero común! no debería ser tan complicado, ¿a quién le gusta agregar un contenedor más a un formulario? Dock.Top debería hacerlo. – Bohn

Respuesta

27

Depende del orden en que haya agregado esos controles a su contenedor. El control agregado anteriormente será el primero y así sucesivamente ...

Para solucionarlo, "Cortar" el cuarto control y "Pegar" de nuevo en el contenedor y ocupará el lugar deseado.

Otra forma de solucionarlo es modificando el código de archivo del diseñador para reordenar la adición de esos controles a su contenedor.

+6

Este es realmente un enfoque no bueno. Las opciones "Bring Front" y "Send Back" son mucho mejores. para más detalles, prueba este enlace. http://stackoverflow.com/questions/154543/panel-dock-fill-ignoring-other-panel-dock-setting – Adeem

+4

¡El enfoque de "cortar y pegar" destruirá todos los enlaces de devolución de llamada! – GuLearn

+3

O mejor aún, utilice la ventana 'Document Outline' y vuelva a colocar los controles allí – Jcl

15

Haga clic con el botón derecho en los controles y seleccione "Enviar al fondo" o "Traer al frente", o utilice la ventana del contorno del documento para reorganizar el orden Z de los elementos. Document Outline ayuda mucho cuando se crean cosas WinForms con muchos controles.

+0

Esta debería ser la respuesta aceptada. Cortar y pegar definitivamente arruinará su diseño. –

8

El diseño del muelle se basa en el orden en que se agregan al contenedor.

por lo general me vaya al archivo * .Designer.cs y modificar los InitializeComponent() método para volver a ordenar manualmente cómo se añaden los controles en el contenedor.

this.Controls.Add(this.panel1); 
this.Controls.Add(this.panel4); 
this.Controls.Add(this.panel3); 
this.Controls.Add(this.panel2); 

Esta orden es opuesto en pantalla

+1

" Esta orden es opuesta en la pantalla "debe estar en negrita. –

6

Tienes que organizar el orden de los controles de la ventana Esquema del documento (Ver -> Otras ventanas -> Esquema del documento (Ctrl + W, U)) Seleccione su forma en el Modo Diseño y verá todos sus componentes en una vista en árbol. Use las flechas en la parte superior para seleccionar el orden deseado.

Es mejor que cortar y pasar porque evitará la pérdida de devoluciones de llamadas vinculantes.

Cuestiones relacionadas