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?

Respostas:



28

Largura da barra de rolagem vertical

System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;

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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.