このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【6日でできるVisual Basic2022入門】③画面の設計:コントロールの配置とプロパティ値の設定

③画面の設計:コントロールの配置とプロパティ値の設定

 本章では、ラーメンタイマーのUIを具体化します。上段に「ゆで時間(秒)」のLabel+TextSetSeconds、中断にStart(ButtonStart)、下段に「残り時間(秒)」とTextRemainingを配置し、Timer1はコンポーネントトレイに追加。主な設定は TextAlign=Right、TextRemainingは ReadOnly、Timer1.Interval=1000。AcceptButton=ButtonStart とタブ順で操作性を高め、名称を統一し、スナップライン等で整然としたレイアウトに仕上げます。

3.画面の設計:コントロールの配置とプロパティ値の設定

3.1. レイアウト方針とワイヤーフレーム

 入力は最上段、操作ボタンは中断の右寄せ、結果表示はげ下段の見やすい位置にまとめます。Timer は非表示コンポーネントのため下部コンポーネントトレイに置かれます。

3.2. 配置するコントロール一覧

 ツールボックスからドラッグ&ドロップして配置します。名称は以降のコードで参照するのでこの表のとおりにします。

No種別(Name)主要プロパティ用途
1FormFormRamenTimerText=ラーメンタイマー画面本体
2Label既定(自動)Text=ゆで時間(秒)入力ラベル
3TextBoxTextSetSecondsTextAlign=Right秒数入力
4ButtonButtonStartText=Start計測開始
5Label既定(自動)Text=残り時間(秒)表示ラベル
6TextBoxTextRemainingReadOnly=True, TextAlign=Right残り秒表示
7TimerTimer1Interval=10001 秒周期イベント

ヒント

  • 等間隔に並べるには、複数選択して右クリック→配置→左右に整列/等間隔に配置を使うと素早く整います。
  • 後章で Enter キー開始を有効にするため、フォームの AcceptButton に ButtonStart を割り当てます。

Timerコントロールの配置

1.コンポーネントを展開します。

2.Timerコントロールをフォームに配置します。

 このTimerコントロールに間隔を指定することで、指定した間隔でイベントを発生させることができます。

配置する位置はフォーム上のどこでもかまいません。

3.コンポーネントトレイに配置される。

 フォーム上に配置したTimerコントロールは、仮面下のコンポーネントトレイと呼ばれる領域に配置されます。

 このTimerコントロールは、他のコントロールと同様に「Delete」キーで削除することができます。

3.3. 配置手順(基本)

  1. デザイナでフォームをクリックし、サイズをおよそ 420×220 に調整する。
  2. Label(ゆで時間)、TextSetSeconds を一列に配置する。
  3. 1行空けて、ButtonStartを配置する。
  4. 1 行空けて Label(残り時間)、TextRemaining を一列に配置する。
  5. Timer をフォームにドロップ(コンポーネントトレイに表示されます)
  6. スナップラインで上下の余白をそろえ、テキストボックスの幅を同じにする。

3.4. プロパティ値の設定(詳細表)

プロパティウィンドウで以下を設定します。未記載は既定のままでかまいません。

対象プロパティねらい
FormRamenTimerTextラーメンタイマータイトル
 〃StartPositionCenterScreen画面中央開始
 〃FormBorderStyleFixedSingleレイアウト固定
 〃MaximizeBoxFalse最大化無効
 〃FontMeiryo, 10pt 程度日本語可読性
Label(上)Textゆで時間(秒)入力ラベル
TextSetSecondsNameTextSetSecondsコードから参照
Text180(例)初期値(任意)
TextAlignRight数値右寄せ
MaxLength4入力桁の上限
ButtonStartNameButtonStartコードから参照
TextStartボタン表示
Label(下)Text残り時間(秒)表示ラベル
TextRemainingNameTextRemainingコードから参照
ReadOnlyTrueユーザー編集不可
TabStopFalseタブ移動を除外
TextAlignRight数値右寄せ
Timer1NameTimer1コードから参照
Interval10001 秒間隔

補足

  • TextSetSeconds の初期値は 180(3 分)など任意。未入力対策は後章の入力検証で行います。
  • TextRemaining は ReadOnly=True にすると背景が灰色になることがあります。見た目を白にしたい場合は Enabled=True のまま ReadOnly=True を使い、BackColor を Window に合わせます。

3.5. タブオーダーとアクセシビリティ

 ユーザーが Tab で自然に移動できるよう順番を設定します。メニュー「表示」→「タブ オーダー」で 1) TextSetSeconds → 2) ButtonStart の順になるようにクリックします。TextRemaining は TabStop=False にしておくと快適です。

3.6. キーボード操作の割り当て

 Enter で開始できると便利です。フォームを選択し、プロパティで AcceptButton=ButtonStart を設定します。将来停止ボタンを追加する場合は CancelButton=ButtonStop に設定すると Esc で停止できます。

フォームのプロパティ設定効果
AcceptButtonButtonStartEnter キーで開始
CancelButtonなし(後で追加可)Esc キーでキャンセル

3.7. 配色とフォントの微調整(任意)

  • フォームの Font を Meiryo 10–11pt 程度にすると日本語が読みやすくなります。
  • TextRemaining の Font をやや大きめ(12–14pt)にするとカウントが視認しやすくなります。
  • 読み取り専用欄が灰色になる場合は BackColor=Window を指定すると自然な白にできます。

3.8. Timer コンポーネントの設定ポイント

 Timer1 の Interval は 1000 ミリ秒(1 秒)にします。Tick イベントは次章で実装しますが、ここでは配置と間隔設定のみ行います。開始/停止はコードから Timer1.Start()Timer1.Stop() を呼びます。

3.9. Visual Basic 2022 の関連要素解説(この章で触れたもの)

要素種別概要・使いどころ
TextBox.TextAlign列挙体(HorizontalAlignmentLeft/Center/Right のいずれか。数値欄は Right が一般的
TextBox.ReadOnlyプロパティTrue でユーザー編集不可だが有効状態は維持。表示専用欄に最適
Form.AcceptButtonプロパティ指定ボタンに Enter キーを結び付ける
Timer.Interval整数(ミリ秒)周期イベント間隔。1000 で 1 秒
Timer コンポーネント非表示コントロール画面には描画されずコンポーネントトレイに置かれる。
タブ オーダーデザイナ機能入力順を設定。アクセシビリティと操作性の要

3.10. 配置後のチェックリスト

  • フォームタイトルが「ラーメンタイマー」になっている。
  • TextSetSeconds と TextRemaining の幅・右寄せがそろっている。
  • TextRemaining は ReadOnly=True でタブ移動対象外
  • ButtonStart が右側にあり、Enter で押せる(AcceptButton 設定済み)
  • Timer1 の Interval=1000 に設定されている。

 ここまで整えば、次章「④コードの実装と実行:ラーメンタイマーアプリの完成」で 「ButtonStart.Click」 と 「Timer1.Tick」 のイベントハンドラーを実装し、通知メッセージ(例:「麺がゆで上がりました!お好みの固さでどうぞ。」)を表示できるようにします。