Winform トラック バー (スライダー) をタッチ スクリーン モニター上で適切に動作させるにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/755671

質問

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

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

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

役に立ちましたか?

解決

私はやったことがありませんが、マウスをクリックした位置を調べることから始めます。その後、トラックバーの現在の範囲内でクリックが位置する距離を把握し、トラッカーの位置をその位置に設定できました。

まず、コントロールをオーバーライドしてマウス関連のイベント関数を操作することから始めます (OnMouseDown(), 、例)。場合によっては、オーバーライドされた関数の基本クラスの実装を呼び出すことが重要である場合があることに注意してください。必ずケースバイケースで検討してください。(私もこの件に遭遇したばかりなので記憶に新しいです。)

この方法で標準コントロールの動作を変更する必要があるのは、 とても 説得力のある理由。これらは、何百、何千ものプログラムにわたって予測可能な方法で動作するため、標準的です。プログラムだけで何かを異なる動作にすると、 驚きのリースの原理. 。あなたが説明したように動作すると予想できる唯一のトラックバーは、ある種のメディアプレーヤー用です。

編集:あなたのコメントによると、そうですね、説得力のある理由があると思います。:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top