2009-04-14 4 views
7

Lorsqu'un Control est ancré dans un conteneur (comme un Panel) et est trop large pour être affiché (une barre de défilement apparaît donc), Control.Width semble renvoyer la largeur visible du contrôle (la flèche du haut dans l'image).WinForms - Comment obtenez-vous la taille d'un contrôle "veut" être?

Comment obtenez-vous la largeur que le contrôle "veut" être? c'est-à-dire sa largeur totale que vous verriez si vous n'aviez pas à faire défiler (la flèche du bas dans l'image).

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

Répondre

8

Il y a deux propriétés différentes de contrôles qui pourraient vous être utiles à cet effet. Il y a le DefaultSize qui est la taille du contrôle quand il est initialement créé, et puis il y a le PreferredSize qui est la taille dans laquelle le contrôle peut s'intégrer pour ainsi dire. Tous les contrôles ont ces propriétés et PreferredSize devrait être celui que vous recherchez.

8

Bounds est la taille réelle tirée à son

ClientSize est la taille moins les barres de défilement

Control.PreferredSize est ce que vous voulez

1

Control.HorizontalScrollbar.Maximum ou Control.VerticalScrollbar.Maximum doit retourner la taille maximale requise. Il peut retourner une petite quantité car il peut couper le rembourrage.

Questions connexes