Comment connaître la largeur actuelle de la barre de défilement du système?

96

Comme vous le savez, on peut personnaliser la largeur de la largeur de la barre de défilement dans Propriétés d'affichage -> Apparence -> Avancé -> Élément: ScrollBar. La valeur par défaut est 17. Cependant, je ne peux pas supposer que c'est toujours le cas, est-il possible pour moi de récupérer cette valeur?

Hao Wooi Lim
la source

Réponses:

28

Largeur de la barre de défilement verticale

System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
Uwe Keim
la source
9

Si vous souhaitez connaître la taille d'un ScrollableControlmoins la taille de la barre de défilement, le moyen le plus simple est d'utiliser la Control.ClientSizepropriété.

De la documentation :

Obtient ou définit la hauteur et la largeur de la zone cliente du contrôle. La zone cliente d'un contrôle correspond aux limites du contrôle, moins les éléments non clients tels que les barres de défilement , les bordures, les barres de titre et les menus.

Paolo M
la source
3
Malheureusement, ClientSize inclut également la largeur de la barre de défilement (donne la même valeur que ActualWidth). Cela n'a pas de sens cependant.
Oyvind le
2

Ignorez la propriété ClientSize du contrôle. Au moins dans VS2013, la barre de défilement est incluse dans ClientSize.

Lorsque j'ai formaté un RichTextBox avec une largeur de 304 et une barre de défilement verticale, la largeur de la taille du client était de 300, ce qui ne représentait que les bordures.

coller avec le System.Windows.Forms.SystemInformation.VerticalScrollBarWidth pour obtenir la largeur de votre barre de défilement.

user3892767
la source