Come sapete, è possibile personalizzare la larghezza della larghezza della barra di scorrimento in Proprietà dello schermo -> Aspetto -> Avanzate -> Oggetto: Barra di scorrimento. Il valore predefinito è 17. Tuttavia, non posso supporre che sia sempre il caso, è possibile per me recuperare questo valore?Come si conosce la larghezza attuale della barra di scorrimento del sistema?
risposta
Guarda i membri della classe System.Windows.Forms.SystemInformation
: HorizontalScrollBarHeight
e VerticalScrollBarWidth
.
barra di scorrimento verticale Larghezza
System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
Se si desidera conoscere la dimensione di un ScrollableControl
meno la dimensione della barra di scorrimento, il modo più semplice è utilizzare la proprietà Control.ClientSize
.
Dal documentation:
Ottiene o imposta l'altezza e la larghezza dell'area client del controllo. L'area client di un controllo è i limiti del controllo, meno gli elementi non client quali le barre di scorrimento, i bordi, le barre del titolo e i menu.
Ignora la proprietà ClientSize del controllo. Almeno in VS2013 la barra di scorrimento è inclusa in ClientSize.
Quando ho formattato un RichTextBox con una larghezza di 304 e una barra di scorrimento verticale, la larghezza Dimensione client era 300, che rappresentava solo i bordi.
attaccare con System.Windows.Forms.SystemInformation.VerticalScrollBarWidth per ottenere la larghezza della barra di scorrimento.
Sfortunatamente, ClientSize include anche la larghezza della barra di scorrimento (restituisce lo stesso valore di ActualWidth). Non ha senso però. – Oyvind