2008-10-10 14 views
11

Visual Studio 2008 SP1 (aunque IIRC, el comportamiento también estuvo presente en 2005) sigue cambiando el tamaño de un par de controles de cuadrícula (Janus.GridEx para ser precisos) que uso.¿Cómo evito que Visual Studio cambie el tamaño de mis controles?

Puedo redimensionarlos a la normalidad, guardarlos y compilarlos perfectamente. Cuando se compila, estos dos controles se expandirán a valores ridículos.

Más información: Este problema está relacionado con la configuración de la propiedad Anchor en el control. Si establezco la propiedad Anchor en extremos opuestos (por ejemplo, Izquierda y Derecha), cuando se compila el archivo Designer, establece el ancho/alto del control en el ancho/alto del contenedor.

Parece que en el archivo Designer, la propiedad Anchor se establece antes de la propiedad Size. La edición manual (lo sé, lástima de mí) del archivo para poner primero la propiedad Tamaño no ayuda, ya que cuando se compila el archivo Designer, parece que también se reescribe desde cero.

Así que supongo que mi verdadera pregunta es cómo hacer que el diseñador de formularios VS respete mi declaración de tamaño inicial, así como la propiedad Anchor.

+0

publique el código del diseñador; ¿Estás seguro de que no has configurado también la propiedad Dock en Fill? –

+0

El muelle no es ninguno. Esto no es un problema de que el control actúe mal. Cuando se ejecuta, la aplicación se ejecuta como debería. Solo en el diseñador, la altura y/o el ancho se vuelven demasiado grandes para trabajar. –

+0

@ [brindis]: ok. Solo me he encontrado con este tipo de problema una vez y no pude resolverlo, excepto al configurar las cosas en el constructor como se sugirió anteriormente. –

Respuesta

2

Normalmente resuelvo ese tipo de problema poniendo el 'buen' código en el constructor de formularios, justo después de la llamada a InitializeComponent(), por lo que anula cualquier desorden que la magia automática del diseñador pueda causar.

+0

Sería bueno si el diseñador trabajara todo el tiempo, pero a veces es mejor usar esta solución para ordenar el trabajo y seguir adelante en lugar de preocuparse por el hecho de que el diseñador tenga algunos defectos. –

+0

Esta parece ser la mejor respuesta a mi problema. –

0

Normalmente cuando tengo este problema, termino usando Paneles y Etiquetas (texto en blanco) con las propiedades Dock y Padding en los controles para obtener el mismo aspecto visual. Si esto sería práctico para su forma dependería de cómo se presenta.

No es la mejor solución debido a todos los controles extra, pero hace el trabajo bien.

+0

Intenté agregar un panel para ambos controles, pero tampoco funcionó muy bien. –

1

Lo que estoy haciendo actualmente es manejar el evento Resize y establecer el tamaño en los dos controles requeridos. Siento que esto es un poco complicado dado el efecto deseado de la propiedad Anchor.

6

que tenía el mismo problema. Las instancias de mi control de usuario en el formulario tenían estas configuraciones. anclaje - ninguno tamaño automático - falsa muelle - ninguno

Todavía terriblemente ellos cambia de tamaño cada vez que hice una acumulación etc.

me encontré con que en el control de usuario en las propiedades de diseño que se había establecido en la fuente autoscalemode . Lo cambio a ninguno y eso solucionó el problema.

+0

Eso funcionó para mí. Tenía dos controles de usuario en un formulario que el diseñador cambiaba de tamaño y cambiaba de ubicación. Ambos tenían autoscalemode set a font. Cambié uno a Ninguno y ese control de usuario se comportó de repente y no cambió de tamaño ni se movió mientras el otro continuaba moviéndose y redimensionándose. Así que cambié el modo de autoescala del segundo control de usuario a ninguno y los problemas desaparecieron. ¡Gracias por el consejo! – Chris

+0

Este fue mi problema, también. Gracias, Rich! – pettys

Cuestiones relacionadas