【学習】WinFormsでTrackBarを使ってみよう(スライダーで値を調整する)
2026年8月29日
広告
TrackBar は、つまみを左右に動かして数値を選ぶコントロールです。音量や明るさなど、「細かい数字を直接入力するより、感覚的に調整したい値」に向いています。

今回作るもの
TrackBar を動かすと、現在の値が Label に表示される小さなアプリを作ります。
プロジェクトを作る
Visual Studio で新しいプロジェクトを作ります。
- テンプレート: Windows Forms アプリ (.NET Framework)
- ソリューション名: TrackBarSample
- プロジェクト名: TrackBarDemo
作成すると Form1 というウィンドウが表示されます。これが フォーム です。
フォームに配置するコントロール
| コントロール | Name | 役割 |
|---|---|---|
| TrackBar | volumeTrackBar | 0〜100の値を選ぶ |
| Label | valueLabel | 現在値を表示する |
コントロールの配置例
次の図は配置の一例です。青いラベルを参考に、プロパティウィンドウで Name を設定してください。

TrackBarの基本プロパティ
| プロパティ | 設定例 | 意味 |
|---|---|---|
| Minimum | 0 | 最小値 |
| Maximum | 100 | 最大値 |
| Value | 50 | 現在の値 |
| TickFrequency | 10 | 目盛りの間隔 |
Value は必ず Minimum 以上、Maximum 以下にします。範囲外の値を設定すると ArgumentOutOfRangeException が発生します。
ValueChangedイベントを書く
デザイナーで volumeTrackBar を選び、プロパティウィンドウの雷マークから ValueChanged をダブルクリックします。
private void volumeTrackBar_ValueChanged(object sender, EventArgs e)
{
valueLabel.Text = $"現在の値: {volumeTrackBar.Value}";
}
ValueChanged は、ユーザーがつまみを動かした場合だけでなく、コードから Value を変更した場合にも発生します。現在値に合わせて画面を更新する用途では、まずこのイベントを使うと分かりやすいです。
初期表示も合わせる
public Form1()
{
InitializeComponent();
volumeTrackBar.Minimum = 0;
volumeTrackBar.Maximum = 100;
volumeTrackBar.Value = 50;
valueLabel.Text = $"現在の値: {volumeTrackBar.Value}";
}
Scrollとの違い
| イベント | 主な発生条件 |
|---|---|
| ValueChanged | Value が変化したとき。コードからの変更も含む |
| Scroll | ユーザーがTrackBarを操作したとき |
通常は ValueChanged で十分です。「ユーザーが操作したときだけ処理したい」という場合に Scroll を検討します。
まとめ
MinimumとMaximumで選択範囲を決める- 現在値は
Valueから取得する - 画面の表示を追従させるなら
ValueChangedが基本 Valueは必ず設定した範囲内にする
広告
C#,WindowsFormアプリ,初学者C#,TrackBar,ValueChanged,WinForms,初学者
Posted by hidepon
関連記事

【学習】WinFormsでToolTipを使ってみよう(マウスオーバーでヒントを表示する)
これまでの学習では、 ボタンやテキストボックスを配置する Label で説明文を ...

【C#入門】Controlとしてまとめて扱う|WinFormsのコントロールとforeach
前回は、Button を継承した MyButton を作りました。 MyButt ...

【学習】WinFormsでContextMenuStripを使ってみよう(右クリックメニューを表示する)
ContextMenuStrip は、コントロールを右クリックしたときに表示する ...

C#のListでRemoveとRemoveAtはどう使い分ける?ゲーム開発で考えてみよう
C#のList<T>には、要素を削除するためのメソッドとしてRemo ...

【学習】WinFormsでUserControlを使ってみよう(複数コントロールを1つにまとめる)
これまでの学習では、 フォームに1つずつコントロールを配置する Button、T ...







ディスカッション
コメント一覧
まだ、コメントがありません