2011-09-16 6 views
1

スクロールバーの値と最大値が両方とも500で、最大値を250に変更すると値はまだ500です。最大値(C#winforms)を変更した後にスクロールバーの値が更新されない

現在、私が最大値を変更するたびに、私は手動で値を調整します。これは非常に面倒で反復的です。

どのようなソリューションですか?

+0

あなたのSetMaximum-codeを値を更新するメソッドにリファクタリングする以外に、コピー&ペーストを停止するには?いいえ、ごめんなさい。 – Carsten

+0

それを再現する郵便番号。最大値を変更すると、コンピュータの値が変更されます。 – LarsTech

+0

@LarsTech:ああ、申し訳ありません。私が説明しようとしていたのは、値が変更されたということでしたが、それは間違った値です。たとえば、LargeChangeが400の場合、最大値を250に設定した後、ValueはMaximumであってはなりません。それはMaximum - LargeChange + 1でなければなりません。正直なところ、.NET Frameworkのバグのようです。また、明らかにゼロ以下の値はゼロになるはずです。 –

答えて

0

これを回避する方法の1つは、最大で同じままにしておき、別の変数を使用してアプリケーションでスクロール値を拡大/縮小することです。たとえば、スクロールバーの最大値を500から250に変更する代わりに、変数の値(この例ではQ)に0.5を掛けます。次に、アプリケーションで使用するたびにscrollbar.valueにQを掛けます。

関連する問題