2009-02-24 7 views
7

WinFormsで複数のスライダを使用してトラックバーを作成する方法はありますか?私は範囲をマークしたいと思います。また、スライダを垂直に少しずらすことは可能ですか?私の目標は、トラックバーの上に2つのスライダを、それより下に2つのスライダを置くことです。Windowsフォーム用の複数のスライダトラックバー

 v-----------------v 
________________________________________ 
           ^------^ 

答えて

7

これは、マウスイベントを処理し自分で絵を描く独自のUserControlを作成することで行うことができます。いくつかのヒットテスト領域が必要です。親指ごとに1つ

トラックバーを描画するには、ControlPaintSystem.Windows.Forms.VisualStyles名前空間で提供されるテーマAPIの組み合わせが必要です。最も顕著なのは、サムとトラックをそれぞれ描画するためのVisualStyleElement.TrackBar.ThumbTopVisualStyleElement.TrackBar.ThumbBottom、およびVisualStyleElement.TrackBar.Trackです。

テーマが利用できないとき(Win2kやテーマ設定が無効のときなど)、ControlPaintコールを使用してトラックとサムのフレームとボタンを描画します。

+0

私は前にこのようなことをしていません。もし私が自分のすべてを描くならば、タムとダニの "標準的な"振る舞いを得る方法はありますか、それともそれをデザインしなければなりませんか? – Presidenten

+0

残念ながら、自分で設計してコード化する必要があります。テーマが利用可能なときにティックを描画するためのビジュアルスタイルがありますが、レイアウトの決定、キーボードとマウスのやりとりの操作などを担当しています。 –

0

あなたはレンダリングがあなたのUIの残りの部分と一致していることを確認するControlPaintを使用して、独自に描くことができます。

+0

ControlPaintを使用したことはありません。それがどのように行われるかをもう少し詳しく説明できますか? – Presidenten

関連する問題