1

Winformsトラックバーを変更して、ユーザーがクリックするとトラックバーがマウスの位置にジャンプするようにする最も簡単な方法は何ですか?

デフォルトでは、トラックバーは現在の場所とマウスがクリックされた場所の中間に移動します。

更新:タッチスクリーンでトラックバーを使用できるように、これを実行しようとしています。タッチスクリーンでのドラッグは非常に難しいため、トラックバーをユーザーがタップした場所に直接ジャンプする必要があります。

4

1 に答える 1

2

私はそれをやったことはありませんが、マウスクリックの場所を確認することから始めます。次に、トラックバーの現在の範囲全体でクリックがどこまで位置しているかを把握し、トラッカーの位置をその場所に設定できました。

OnMouseDown()まず、コントロールをオーバーライドし、マウス関連のイベント関数(たとえば)を操作することを検討します。場合によっては、オーバーライドされた関数の基本クラスの実装を呼び出すことが重要になる場合があることに注意してください。ケースバイケースで検討してください。(私はこれに反抗したばかりなので、頭の中で新鮮です。)

非常にやむを得ない理由がある場合にのみ、この方法で標準コントロールの動作を変更する必要があることに注意してください。それらは、何百/何千ものプログラムにわたって予測可能な方法で動作するため、標準です。プログラムだけで何かを異なる動作にすることは、リースの驚きの原則に違反する可能性があります。私が考えることができる唯一のトラックバーは、あなたが説明するように動作することを期待しているのは、ある種のメディアプレーヤー用です。

編集: あなたのコメントに基づいて、ええ、私はあなたが説得力のある理由を持っていると思います。:)

于 2009-04-16T11:40:03.340 に答える