Как узнать текущую ширину полосы прокрутки системы?

96

Как вы знаете, ширину полосы прокрутки можно настроить в Свойства экрана -> Внешний вид -> Дополнительно -> Элемент: ScrollBar. Значение по умолчанию - 17. Однако я не могу предположить, что это всегда так, могу ли я получить это значение?

Хао Уи Лим
источник

Ответы:

28

Ширина вертикальной полосы прокрутки

System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
Уве Кейм
источник
9

Если вы хотите узнать размер ScrollableControlминус размер полосы прокрутки, проще всего использовать это Control.ClientSizeсвойство.

Из документации :

Получает или задает высоту и ширину клиентской области элемента управления. Клиентская область элемента управления - это границы элемента управления за вычетом неклиентских элементов, таких как полосы прокрутки , границы, строки заголовка и меню.

Паоло М
источник
3
К сожалению, ClientSize также включает ширину полосы прокрутки (дает то же значение, что и ActualWidth). Хотя в этом нет смысла.
Ойвинд
2

Пропустите свойство ClientSize элемента управления. По крайней мере, в VS2013 полоса прокрутки включена в ClientSize.

Когда я отформатировал RichTextBox с шириной 304 и вертикальной полосой прокрутки, ширина Client Size была 300, что учитывало только границы.

придерживайтесь System.Windows.Forms.SystemInformation.VerticalScrollBarWidth, чтобы получить ширину полосы прокрутки.

user3892767
источник