C#

スクロールバーの考え方

スクロールバーは、必要な個所にはだいたい組み込まれているので、直接扱う機会は少ないと思います。やってみるとうまく使えず、どうも考え方が違うみたいだと気付きました。

私は下の図のように思っていました。

Minimum <= Value <= Maximum

しかし実際には、ValueはMaximumになりません。どうやらこういうことのようです。

Minimum <= Value <= Maximum - LargeChange + 1

スクロールして表示したい幅をScrollWidth、表示領域の幅をClientWidthとすると、

      Maximum = ScrollWidth - 1
      LargeChange = ClientWidth
とすればうまくいきます。

おそらくこのように簡単にするための仕様になっているのでしょう。垂直スクロールバーも同様です。

(2018/02/27 更新)
(2014/11/23 初稿)