Como posso saber a largura atual da barra de rolagem do sistema?

96

Como você sabe, pode-se personalizar a largura da barra de rolagem em Propriedades de exibição -> Aparência -> Avançado -> Item: Barra de rolagem. O valor padrão é 17. No entanto, não posso presumir que esse seja sempre o caso. É possível recuperar esse valor?

Hao Wooi Lim
fonte

Respostas:

28

Largura da barra de rolagem vertical

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

Se você quiser saber o tamanho de ScrollableControlmenos o tamanho da barra de rolagem, a maneira mais fácil é usar a Control.ClientSizepropriedade.

Da documentação :

Obtém ou define a altura e largura da área do cliente do controle. A área do cliente de um controle são os limites do controle, menos os elementos não clientes, como barras de rolagem , bordas, barras de título e menus.

Paolo M
fonte
3
Infelizmente, ClientSize também inclui a largura da barra de rolagem (produz o mesmo valor que ActualWidth). Mas não faz sentido.
Oyvind
2

Ignore a propriedade ClientSize do controle. Pelo menos no VS2013, a barra de rolagem está incluída no ClientSize.

Quando formatei um RichTextBox com uma largura de 304 e uma barra de rolagem vertical, a largura do Client Size era 300, o que representava apenas as bordas.

fique com System.Windows.Forms.SystemInformation.VerticalScrollBarWidth para obter a largura da barra de rolagem.

user3892767
fonte