¿Cómo sé el ancho actual de la barra de desplazamiento del sistema?

96

Como sabe, se puede personalizar el ancho de la barra de desplazamiento en Propiedades de pantalla -> Apariencia -> Avanzado -> Elemento: Barra de desplazamiento. El valor predeterminado es 17. Sin embargo, no puedo asumir que este es siempre el caso, ¿es posible que recupere este valor?

Hao Wooi Lim
fuente

Respuestas:

28

Ancho de la barra de desplazamiento vertical

System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
Uwe Keim
fuente
9

Si desea saber el tamaño de ScrollableControlmenos el tamaño de la barra de desplazamiento, la forma más sencilla es utilizar la Control.ClientSizepropiedad.

De la documentación :

Obtiene o establece el alto y el ancho del área de cliente del control. El área del cliente de un control son los límites del control, menos los elementos que no son del cliente, como barras de desplazamiento , bordes, barras de título y menús.

Paolo M
fuente
3
Desafortunadamente, ClientSize también incluye el ancho de la barra de desplazamiento (produce el mismo valor que ActualWidth). Aunque no tiene sentido.
Oyvind
2

Omita la propiedad ClientSize del control. Al menos en VS2013, la barra de desplazamiento se incluye en ClientSize.

Cuando formateé un RichTextBox con un ancho de 304 y una barra de desplazamiento vertical, el ancho del Tamaño del cliente era 300, que solo contabilizaba los bordes.

quédese con System.Windows.Forms.SystemInformation.VerticalScrollBarWidth para obtener el ancho de la barra de desplazamiento.

user3892767
fuente