1
スクロールバーの値と最大値が両方とも500で、最大値を250に変更すると値はまだ500です。最大値(C#winforms)を変更した後にスクロールバーの値が更新されない
現在、私が最大値を変更するたびに、私は手動で値を調整します。これは非常に面倒で反復的です。
どのようなソリューションですか?
スクロールバーの値と最大値が両方とも500で、最大値を250に変更すると値はまだ500です。最大値(C#winforms)を変更した後にスクロールバーの値が更新されない
現在、私が最大値を変更するたびに、私は手動で値を調整します。これは非常に面倒で反復的です。
どのようなソリューションですか?
これを回避する方法の1つは、最大で同じままにしておき、別の変数を使用してアプリケーションでスクロール値を拡大/縮小することです。たとえば、スクロールバーの最大値を500から250に変更する代わりに、変数の値(この例ではQ)に0.5を掛けます。次に、アプリケーションで使用するたびにscrollbar.valueにQを掛けます。
あなたのSetMaximum-codeを値を更新するメソッドにリファクタリングする以外に、コピー&ペーストを停止するには?いいえ、ごめんなさい。 – Carsten
それを再現する郵便番号。最大値を変更すると、コンピュータの値が変更されます。 – LarsTech
@LarsTech:ああ、申し訳ありません。私が説明しようとしていたのは、値が変更されたということでしたが、それは間違った値です。たとえば、LargeChangeが400の場合、最大値を250に設定した後、ValueはMaximumであってはなりません。それはMaximum - LargeChange + 1でなければなりません。正直なところ、.NET Frameworkのバグのようです。また、明らかにゼロ以下の値はゼロになるはずです。 –