やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

HScrollBarのツマミが戻ってしまう

色編集アプリのUIとしてHScrollBarを使いました。 しかし、罠と欠点がありました。

欠点

  • HScrollBarのツマミをドラッグして一定範囲外までいくと前回位置に戻る

f:id:ytyaru:20160614081155p:plain f:id:ytyaru:20160614081229p:plain f:id:ytyaru:20160614081234p:plain

以下の罠を乗り越えても、この欠点は解決できませんでした。 これは使いづらい…

  1. MaxValueプロパティを255に指定する
  2. HScrollBarのツマミをドラッグする
  3. 246までしかスクロールできない

原因はLargeChangeプロパティが10だったためです。これを1にすることで解決しました。

できない

f:id:ytyaru:20160614081315p:plain

できた

f:id:ytyaru:20160614081321p:plain

仕様

Valueプロパティで取れる最大値は「1 + ScrollBar.Maximum - ScrollBar.LargeChange」だそうです。

こちらが素敵にまとめてあります。 http://d.hatena.ne.jp/you-scheme/20100823/1282563376

これはHScrollBarの仕様とのこと。 https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/126bde86-2dd6-4f0c-a8b5-a5c5db404659/largechangemaximum?forum=csharpgeneralja

代用

きっとHScrollBarは今回のような使い方を想定していないのでしょう。 TrackBarで代用することにします。