2010-08-09 13 views
9

con un ancla que pueda escribir la siguiente línea:Cómo muelle para la parte superior e izquierda del

myControl.Anchor = (AnchorStyles.Top | AnchorStyles.Left); 

y va a anclar myControl a la izquierda y la parte superior.

Por qué no puedo hacer lo siguiente:

myControl.Dock = (DockStyle.Top | DockStyle.Left); 

puedo escribir la línea anterior, pero todo lo que hace es establecer el DockStyle a la izquierda.

¿Alguna idea/razón para esto?

+0

Creo que simplemente no entendió completamente cómo obtener el diseño deseado mediante el uso de dock, ancla y algún tipo de control de contenedor (como TableLayoutPanel). Con estos elementos, puedes construir todo tipo de diseño que se adaptará fácilmente al tamaño de tu formulario/control. Entonces, si proporciona más información acerca de lo que desea lograr en su diseño, estoy seguro de que podemos encontrar una solución. – Oliver

Respuesta

11

La razón por la que no puede hacer esto es porque la configuración de un DockStyle básicamente se acopla/llena la entiridad del borde especificado.

Por ejemplo, DockStyle.Left significa que la altura del elemento que se acopla siempre será la altura del recipiente y la del X, Y ubicación siempre será 0, 0.

DockStyle.Top significa que la anchura de la el artículo siempre será el ancho del contenedor y la ubicación siempre será 0,0.

Configuración DockStyle.Top y DockStyle.Left esencialmente le daría DockStyle.Fill. Es decir. el mismo ancho y de altura que el contenedor.

+0

Gracias Gtt, eso explica lo que estoy viendo. ¡Tendré que plantear otra pregunta sobre lo que estoy tratando de lograr una vez que encuentre la manera de expresarlo! – AidanO

+0

No hay problema. He pasado por todo el dolor de atracar y anclarme, así que estaré atento a la próxima pregunta. – GenericTypeTea

1

El DockStyle solo se puede establecer en un valor, en oposición al Anchor que se puede establecer en muchos.

Es por eso que existe la propiedad Anchor para que pueda ajustar la forma en que el control reacciona al cambio de formato de forma más específica.

+0

Esto es cierto, pero ¿cuál es el motivo de esta restricción en el acoplamiento y hay una forma de evitarlo? – AidanO

+0

No conozco una razón específica por la que creo que el Dock es solo para el acoplamiento simple y fácil de los controles y que no funcionaría tener múltiples (no podría tener un relleno de estilo de muelle Y ninguno por ejemplo), por eso existe el Ancla también. – w69rdy

3

A Dock es un conjunto de anclaje predeterminado, mientras que Anchor es una configuración de base personalizada.

DockStyle.Top es lo mismo que Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right) excepto que un anclaje puede sentarse en cualquier posición inicial y un muelle se moverá al borde más alejado.

+0

Son un poco similares, pero no son lo mismo. El anclaje le permite establecer ubicaciones alejadas de los bordes del contenedor. El acoplamiento fuerza el control acoplado al borde especificado. Es decir. Izquierda = 0. Arriba = 0. – GenericTypeTea

+0

@GenericTypeTea Lo dije en mi respuesta – Codesleuth

+0

Así lo hiciste. Mis disculpas, aparentemente no lo leí correctamente. – GenericTypeTea

Cuestiones relacionadas