NetFrameworkのスクロールバー Valueプロパティの返す最大値に注意

なんか,トラックバーで実装していったり>今のお仕事
んが,微妙にまずい感が漂ってきたので
スクロールバーに変更してみたら...

Valueプロパティが返す値が変?

    Maximum プロパティ = 100
    Minimum プロパティ = 0
    LargeChange プロパティ = 10

ってすると,マウスでぐりぐりやった結果,Valueプロパティが返す最大値は

    91

になります(汗

100じゃねと?

とあれこれ調べていったら,こちらのページに情報が

.NET FrameworkのSystem.Windows.Forms.ScrollBar.Valueプロパティの値はマウス操作ではMaximum-LargeChange+1までしか行かない
@Smart Way! オータム マガジン


どうやら,NetFrameworkの仕様らしい
MSDNにも書いてある(オンライン版は書いてあるけど,ローカル版のVS2005用MSDNには書いてないぞ!)

    スクロール バーの値を、実行時にユーザーとのやり取りを通じて最大値にすることはできません。到達できる最大値は、1 に Maximum プロパティ値を加えてから LargeChange プロパティ値を引いた値と同じです。最大値にはプログラムによってしか到達できません。

今回のケースは

1 + 100 - 10 = 91

なんですなぁ...

こりゃ,気をつけないと,嵌るとこだった...

DBから受け取ったレコード数=Minimum プロパティ値にしてましたし...

実装コード変更じゃなぁ...