2009-04-14 7 views
7

Cuando un Control está acoplado en un contenedor (como un Panel) y es demasiado ancho para mostrarse (por lo que aparece una barra de desplazamiento), Control.Width parece devolver el ancho visible del Control (la flecha superior de la imagen).WinForms - ¿Cómo se obtiene el tamaño que un Control "quiere" ser?

¿Cómo se obtiene el ancho que el Control "quiere" ser? es decir, su ancho total que vería si no tuviera que desplazarse (la flecha inferior en la imagen).

alt text http://img19.imageshack.us/img19/372/size.png

Respuesta

8

Hay dos propiedades diferentes de los controles que le puede resultar útil para este propósito. Hay DefaultSize que es el Tamaño del control cuando se crea inicialmente, y luego está el PreferredSize, que es el tamaño que el control puede caber, por así decirlo. Todos los controles tienen estas propiedades y PreferredSize debe ser el que está buscando.

8

Bounds es el tamaño real de su trazada en

ClientSize es el tamaño de menos cualquier barras de desplazamiento

Control.PreferredSize es lo que quiere

1

Control.HorizontalScrollbar.Maximum, o Control.VerticalScrollbar.Maximum debe devolver el tamaño máximo requerido. Puede devolver una cantidad ligeramente pequeña ya que puede cortar el relleno.

Cuestiones relacionadas