none
スクロールバーのValueの取得がうまくいかないのですが RRS feed

  • 質問

  • VB.NET(VisualStudio2005)のスクロールバーでうまくいかないので教えてください。
    今スクロールバーのプロパティを
    Maximum=23
    Minimum=0
    Largechange=2
    Smallchange=1
    Value=10
    という状態でスクロールバーの下部分(Largechange)をクリックしたのですが、
    Scrollイベントで取った場合、取得したValueがなぜか12,14,16,・・・
    と上がって行きます。
    画面上のスクロールバーは下がっていきます。
    従って、Valueのみを当てにしたプログラミングではうまくいきません。
    このような仕様なのでしょうか?
    意図したように行うのにはどうしたらいいでしょうか?

    2008年9月7日 8:24

回答

  • すみません。

    プロパティの値じゃないんですね。

    おっしゃる通り、ScrollEventArgsのNewValueを見て解決しました。

    無知な質問で申し訳ありません。

    ありがとうございました。

    2008年9月8日 4:04

すべての返信

  •  elsesato さんからの引用

    という状態でスクロールバーの下部分(Largechange)をクリックしたのですが、
    Scrollイベントで取った場合、取得したValueがなぜか12,14,16,・・・
    と上がって行きます。
    画面上のスクロールバーは下がっていきます。

    Windowsの一般的なスクロールバーはそういうものです。(右・下方向が正の方向)

    一番上をMaximum、一番下をMinimumとしたいのであれば、計算すれば良いのでは?

     

    期待したValue = Maximum - (Value - Minimum)

    2008年9月7日 8:40
    モデレータ
  • 上部(Largechange)をクリックしても、同じようにValueは変化しますので

    おっしゃるValue = Maximum - (Value - Minimum)という扱いでは

    いずれにしても上下方向がわからないと思うのですが、・・・。

    それともValue = Maximum - (Value - Minimum)でプロパティを

    更新するのでしょうか?

    2008年9月7日 23:47
  •  elsesato さんからの引用

    上部(Largechange)をクリックしても、同じようにValueは変化しますので

     

    同じようにというのは、Valueプロパティが上部をクリックしても増えていくということなのでしょうか?

    ちなみにScrollイベントにおけるScrollEventArgsのNewValueとOldValueはどうなるのでしょうか?
    2008年9月8日 1:28
    モデレータ
  • すみません。

    プロパティの値じゃないんですね。

    おっしゃる通り、ScrollEventArgsのNewValueを見て解決しました。

    無知な質問で申し訳ありません。

    ありがとうございました。

    2008年9月8日 4:04
  •  elsesato さんからの引用

    プロパティの値じゃないんですね。

    おっしゃる通り、ScrollEventArgsのNewValueを見て解決しました。

    よくわかりませんが、確かにScrollイベントのタイミングではValueの値が反映されていないタイミングがあります。

    そのあたりが引っかかったのでしょうか。

     

    ValueChangedは一応、それらしく動いてくれるけど、そっちでよいのかは何とも言えません。

    2008年9月8日 13:41
    モデレータ