C# WinForms 入門シリーズ
WinForms の基本コントロールとよく使う機能を、学習の流れに沿ってまとめたシリーズです。
- フォームとコントロール … 基本の画面構成
- Button イベント … クリックで処理を実行
- TextBox … テキスト入力
- Label … テキスト表示
- WinFormsで画像を表示する方法の選び方 … 画像表示
- WinFormsで作る電話帳アプリ(Listで管理する版) … 一覧表示・選択
- 基本の保存と読み込み / ダイアログで保存と開く … ファイル選択
- タイマーでカウントダウン / デジタル時計 … 一定時間ごとの処理
- WinFormsでサウンドを鳴らす最短ルートと実践レシピ … サウンド再生
- チェックボックスを使ってみよう / ラジオボタンを使ってみよう … 選択UI
- DateTimePickerを使ってみよう … 日付・時刻の選択
- ProgressBarを使ってみよう … 進捗表示
- NumericUpDownを使ってみよう / TrackBarを使ってみよう … 数値入力・スライダー操作
- ErrorProviderを使ってみよう … 入力エラーをアイコンで表示
- TabControlを使ってみよう … タブで画面切り替え
- ToolTipを使ってみよう … マウスオーバーでヒントを表示
- ContextMenuStripを使ってみよう … 右クリックメニュー
- StatusStripを使ってみよう … 状態表示
- UserControlを使ってみよう … 再利用できる部品
- 1. はじめに
- 2. 一般的なWinForms命名の対応表(参考)
- 3. シリーズ記事
- 3.1. 第1回 フォームとコントロール(復習)
- 3.2. 第2回 Button イベント(復習)
- 3.3. 第3回 TextBox(復習)
- 3.4. 第4回 Label(復習)
- 3.5. 第5回 PictureBox(画像表示・復習)
- 3.6. 第6回 ListBox(復習)
- 3.7. 第7回 OpenFileDialog / SaveFileDialog(復習)
- 3.8. 第8回 Timer(復習)
- 3.9. 第9回 SoundPlayer(初見でもOK)
- 3.10. 第10回 チェックボックス・ラジオボタン(復習)
- 3.11. 第11回 DateTimePicker(復習)
- 3.12. 第12回 ProgressBar(復習)
- 3.13. 第13回 NumericUpDown・TrackBar(数値系コントロール・復習)
- 3.14. 第14回 ErrorProvider(初見でもOK)
- 3.15. 第15回 TabControl(復習)
- 3.16. 第16回 ToolTip(初見でもOK)
- 3.17. 第17回 ContextMenuStrip(初見でもOK)
- 3.18. 第18回 StatusStrip(初見でもOK)
- 3.19. 第19回 UserControl(初見でもOK)
- 4. 次のステップ
- 5. 実践編:複数の知識を組み合わせて作る
- 6. まとめ
はじめに
WinForms は、C# で Windows デスクトップアプリを作るための仕組みです。ボタンやテキストボックス、画像表示など、よく使う部品(コントロール)をドラッグ&ドロップで配置し、イベントにコードを書くだけでアプリが作れます。
このシリーズでは、よく使うコントロールと機能を順番に解説します。各記事は独立して読めますが、前から順に進めると理解が深まります。
一般的なWinForms命名の対応表(参考)
コントロール名の付け方に絶対的な決まりはありません。このシリーズでは、初心者にも役割が分かりやすい execButton や nameTextBox のような命名を主に使用しています。以下は、実務で見かけることがあるプレフィックス形式の参考例です。
| コントロール | プレフィックス例 | 命名例 |
|---|---|---|
| Label | lbl | lblFullName |
| TextBox | txt | txtFullName |
| Button | btn | btnSubmit |
| ComboBox | cmb | cmbCategory |
| CheckBox | chk | chkAgree |
| RadioButton | rdo | rdoMale |
| ListBox | lst | lstItems |
| DataGridView | dgv | dgvCustomers |
| Panel | pnl | pnlHeader |
| GroupBox | grp / gb | grpSettings |
どの形式を使う場合も、プロジェクト内で命名方法を揃えることが大切です。
シリーズ記事
第1回 フォームとコントロール(復習)
フォームとは・コントロールとは
フォームがアプリのウィンドウ、コントロールがボタンやテキストボックスなどの部品です。ドラッグ&ドロップで配置し、プロパティで見た目を変えます。
第2回 Button イベント(復習)
クリックで処理を実行
ボタンを押したときに処理を実行するには、Click イベントにコードを書きます。イベントハンドラの基本を学びます。
第3回 TextBox(復習)
テキスト入力
ユーザーが文字を入力するためのコントロールです。Text プロパティで入力内容を取得・設定できます。
第4回 Label(復習)
テキスト表示
ラベルは文字を表示するためのコントロールです。計算結果やメッセージの表示に使います。
第5回 PictureBox(画像表示・復習)
画像を表示する
PictureBox は画像を表示するためのコントロールです。外部ファイル・Imagesフォルダ・リソース・OpenFileDialogなど、画像の置き場所や選び方によって書き方が変わります。
- WinFormsで画像を表示する方法の選び方(まずはこちら)
- PictureBoxに設計時に画像を登録する(コード不要の基本手順)
- PictureBoxで画像を表示する(OpenFileDialog)(応用:実行時にユーザーが選択)
第6回 ListBox(復習)
一覧表示・選択
複数の項目を一覧表示し、ユーザーに選んでもらうコントロールです。Items.Add で追加、SelectedItem で選択内容を取得します。
第7回 OpenFileDialog / SaveFileDialog(復習)
ファイル選択
「ファイルを開く」「名前を付けて保存」のダイアログを表示します。ユーザーが保存先や開くファイルを選べるようになります。
- ダイアログで保存と開く(まずはこちら)
- 基本の保存と読み込み(応用:ダイアログを使わない基本形)
第8回 Timer(復習)
一定時間ごとの処理
一定間隔で処理を実行したいときに使います。カウントダウン、デジタル時計、ゲームループなどに応用できます。
第9回 SoundPlayer(初見でもOK)
サウンド再生
WAV 形式の音声を再生します。ボタンクリックで効果音を鳴らすなど、簡単な音声再生に使えます。
第10回 チェックボックス・ラジオボタン(復習)
選択UI
複数選択(チェックボックス)と1つだけ選択(ラジオボタン)の違いを学びます。条件検索や設定画面でよく使います。
第11回 DateTimePicker(復習)
日付・時刻の選択
ユーザーに日付や時刻を選んでもらうためのコントロールです。カレンダー形式で日付を選べます。予定管理、家計簿、勤怠メモなどで使います。
第12回 ProgressBar(復習)
進捗表示
処理の進み具合を視覚的に表示するコントロールです。ファイルの読み込み、ダウンロード、長時間処理の進捗表示などに使います。
第13回 NumericUpDown・TrackBar(数値系コントロール・復習)
数値入力とスライダー操作
どちらも数値を扱うコントロールです。NumericUpDown は上下ボタンで数量や金額などを正確に入力したいときに、TrackBar はスライダーをドラッグして音量や明るさなど感覚的に値を調整したいときに使います。どちらも Minimum / Maximum で範囲を制限できます。
- NumericUpDownを使ってみよう(正確な数値入力)
- TrackBarを使ってみよう(スライダーでの感覚的な調整)
第14回 ErrorProvider(初見でもOK)
入力エラーをアイコンで表示
入力検証でエラーがある項目の横に赤いアイコンを表示します。SetError でエラー表示、空文字でクリア。Label にエラーを書くより、どの項目がエラーか分かりやすくなります。数値検証の延長として、NumericUpDown や TextBox と組み合わせて使います。
コンテナの基本を先に学ぶなら、Panelを使ってみよう(コントロールをまとめるコンテナの基本)へ。複数の部品の配置、まとめて移動・表示/非表示、スクロールとサイズ調整を練習できます。
第15回 TabControl(復習)
タブで画面を切り替える
複数の画面を1つのフォームにまとめたいときに使います。TabPage を追加し、各タブの中にコントロールを配置します。設定画面やマルチページフォームでよく使います。
第16回 ToolTip(初見でもOK)
マウスオーバーでヒントを表示
コントロールにマウスを乗せたときだけ説明を表示します。画面をすっきり保ちつつ、必要なときにヘルプを出せます。SetToolTip で各コントロールにヒントを設定します。
第17回 ContextMenuStrip(初見でもOK)
右クリックでメニューを表示
コントロールを右クリックしたときにメニューを表示します。ContextMenuStrip プロパティで関連付けると、ListBox や TextBox などで右クリックメニューが使えます。削除・コピー・貼り付けなど、一覧操作でよく使います。
第18回 StatusStrip(初見でもOK)
ステータスバーで状態を表示
フォーム下部に固定で状態を表示します。ToolStripStatusLabel を追加し、Text プロパティで「準備完了」「処理中」「完了」などのメッセージを表示できます。アプリの状態をユーザーに伝えるのに適しています。
第19回 UserControl(初見でもOK)
複数コントロールを1つにまとめる
Label、TextBox、Button などを組み合わせて、再利用可能な部品を作ります。プロパティの公開とイベント転送の基本を学び、チーム開発や実務アプリでの部品化の土台にします。
次のステップ
基本を押さえたら、次のシリーズに進めます。
| シリーズ | 内容 |
|---|---|
| WinFormsで実務アプリを作ろう | レジ、電話帳、家計簿などデータ管理系 |
| WinFormsでゲームを作ろう | ミニゲーム、タイマー、キー入力など |
| WinForms 個人制作(入り口) | 自由制作の課題・ルール、テーマの決め方、発表準備など |
実践編:複数の知識を組み合わせて作る
コントロールの使い方に慣れたら、複数の知識を組み合わせた実践的なアプリにも挑戦してみましょう。
- C# Windows Formsで天気チェッカーを作る|HttpClient・JSON・非同期処理をやさしく解説 … 都道府県選択、HttpClient、JSON解析、非同期処理
- C# Windows Formsでお絵描きアプリを作る|MouseイベントとPaint処理をやさしく解説 … MouseイベントとPaint処理の組み合わせ
まとめ
WinForms の基本は、コントロールの配置とイベントへのコード記述です。Button、TextBox、PictureBox、ListBox、DateTimePicker、ProgressBar、NumericUpDown、TabControl、ToolTip、TrackBar、ContextMenuStrip、StatusStrip、ErrorProvider、UserControl など、よく使うコントロールを1つずつ押さえていけば、実用的なアプリが作れるようになります。このシリーズが、WinForms を学ぶきっかけになれば幸いです。






