如何知道系统滚动条的当前宽度?

111

正如您所知,可以在“显示属性”->“外观”->“高级”->“项目:滚动条”的选项中自定义滚动条的宽度,默认值为17。然而,我不能假设这总是正确的,有可能吗我检索此值?

4个回答

162

36

垂直滚动条宽度

System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;

11
如果您想要获取一个 ScrollableControl 的大小减去滚动条的大小,最简单的方法是使用 Control.ClientSize 属性。
根据文档
获取或设置控件的客户区域的高度和宽度。控件的客户区域是控件的边界,减去非客户端元素,如滚动条、边框、标题栏和菜单。

3
遗憾的是,ClientSize也包括滚动条的宽度(与ActualWidth输出相同),这虽然不合理。 - Oyvind

2
跳过控件的ClientSize属性。至少在VS2013中,滚动条包含在ClientSize中。
当我将RichTextBox格式化为宽度为304并带有垂直滚动条时,客户端大小的宽度为300,仅考虑边框。
坚持使用System.Windows.Forms.SystemInformation.VerticalScrollBarWidth来获取滚动条宽度。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接