WinFormsで複数のスライダを使用してトラックバーを作成する方法はありますか?私は範囲をマークしたいと思います。また、スライダを垂直に少しずらすことは可能ですか?私の目標は、トラックバーの上に2つのスライダを、それより下に2つのスライダを置くことです。Windowsフォーム用の複数のスライダトラックバー
v-----------------v
________________________________________
^------^
WinFormsで複数のスライダを使用してトラックバーを作成する方法はありますか?私は範囲をマークしたいと思います。また、スライダを垂直に少しずらすことは可能ですか?私の目標は、トラックバーの上に2つのスライダを、それより下に2つのスライダを置くことです。Windowsフォーム用の複数のスライダトラックバー
v-----------------v
________________________________________
^------^
これは、マウスイベントを処理し自分で絵を描く独自のUserControl
を作成することで行うことができます。いくつかのヒットテスト領域が必要です。親指ごとに1つ
トラックバーを描画するには、ControlPaint
とSystem.Windows.Forms.VisualStyles
名前空間で提供されるテーマAPIの組み合わせが必要です。最も顕著なのは、サムとトラックをそれぞれ描画するためのVisualStyleElement.TrackBar.ThumbTop
、VisualStyleElement.TrackBar.ThumbBottom
、およびVisualStyleElement.TrackBar.Track
です。
テーマが利用できないとき(Win2kやテーマ設定が無効のときなど)、ControlPaint
コールを使用してトラックとサムのフレームとボタンを描画します。
あなたはレンダリングがあなたのUIの残りの部分と一致していることを確認するControlPaint
を使用して、独自に描くことができます。
ControlPaintを使用したことはありません。それがどのように行われるかをもう少し詳しく説明できますか? – Presidenten
私は前にこのようなことをしていません。もし私が自分のすべてを描くならば、タムとダニの "標準的な"振る舞いを得る方法はありますか、それともそれをデザインしなければなりませんか? – Presidenten
残念ながら、自分で設計してコード化する必要があります。テーマが利用可能なときにティックを描画するためのビジュアルスタイルがありますが、レイアウトの決定、キーボードとマウスのやりとりの操作などを担当しています。 –