2009-04-14 7 views
7

Quando un Control è inserito in un contenitore (come un Panel) ed è troppo largo per essere visualizzato (quindi viene visualizzata una barra di scorrimento), Control.Width sembra restituire la larghezza visibile del controllo (la freccia superiore nell'immagine).WinForms - Come si ottiene la dimensione che un controllo "vuole" essere?

Come si ottiene la larghezza che il controllo "desidera" essere? cioè la sua larghezza totale che vedresti se non dovessi scorrere (la freccia in basso nella foto).

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

risposta

8

ci sono due differenti proprietà di controlli che possono essere utili a questo scopo. C'è il DefaultSize che è la Dimensione del controllo quando viene inizialmente creato, e poi c'è il PreferredSize che è la dimensione che il controllo può contenere per così dire. Tutti i controlli hanno queste proprietà e PreferredSize dovrebbe essere quello che stai cercando.

8

Bounds è la dimensione effettiva la sua disegnato a

ClientSize è la dimensione meno eventuali barre di scorrimento

Control.PreferredSize è quello che volete

1

Control.HorizontalScrollbar.Maximum, o Control.VerticalScrollbar.Maximum dovrebbe restituire la dimensione massima richiesta. Potrebbe restituire una quantità leggermente ridotta in quanto potrebbe tagliare il riempimento.

Problemi correlati