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 プロパティ値にしてましたし...

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

2件のフィードバック

  1. tama より:

    2年前の記事でしたか。同じところで引っかかってたので助かりました。

  2. くまさん より:

    >>tama さま

    参考になって,よかったです
    また,困った事があったら,吟遊詩人,検索してみてください.結構濃いTIPSが書いてあるかも? 😉

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください