システムのスクロールバーの現在の幅を知るにはどうすればよいですか?


96

ご存知のように、スクロールバーの幅は、[画面のプロパティ]-> [外観]-> [詳細]-> [アイテム:ScrollBar]でカスタマイズできます。デフォルト値は17ですが、常にそうであるとは限りません。この値を取得することは可能ですか?

回答:




9

a ScrollableControlのサイズからスクロールバーのサイズを差し引いて知りたい場合、最も簡単な方法はControl.ClientSizeプロパティを使用することです。

ドキュメントから:

コントロールのクライアント領域の高さと幅を取得または設定します。コントロールのクライアント領域は、コントロールの境界から、スクロールバー、境界線、タイトルバー、メニューなどの非クライアント要素を除いたものです


3
残念ながら、ClientSizeにはスクロールバーの幅も含まれます(ActualWidthと同じ値になります)。しかし、意味がありません。
Oyvind

2

コントロールのClientSizeプロパティをスキップします。少なくともVS2013では、ScrollbarはClientSizeに含まれています。

幅304と垂直スクロールバーでRichTextBoxをフォーマットすると、クライアントサイズの幅は300になり、境界線のみが考慮されました。

System.Windows.Forms.SystemInformation.VerticalScrollBarWidthをそのまま使用して、スクロールバーの幅を取得します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.