フレッシュマン企画 連載
簡単!Visual Studio 2005入門

第5回 初めてのWindowsアプリケーションの開発

デジタルアドバンテージ 一色 政彦
2007/07/09

3. 【実装】設計に基づきプログラムのソース・コードを実装(=コーディング)する

 まず「(a)Windowsフォーム」のクラスの実装を行う。次の画面を参考に、Windowsフォームのソース・ファイルの名前を「Display.cs」に変更し、クラス名を「Display」に変更しよう。

(a)Windowsフォームのクラスの実装
Windowsフォームのソース・ファイルの名前を「Display.cs」に変更し、クラス名を「Display」に変更する。
  ファイル名部分をクリックして少し待つと編集可能な状態になるので、そこでファイル名を「Form1.cs」から「Display.cs」に変更する。
  変更しようとすると、VS 2005ではこのようなダイアログが表示される。このダイアログは、ファイル名の変更に合わせてクラス名を自動で一括変更してくれるリファクタリング機能(=外部に影響を与えずに、コードの内容を適切に変更する機能)だ。ここでは「ファイルの名前を変更しようとしています。このプロジェクトのすべての参照をコード要素 'Form1' に名前を変更しますか?」と表示されている(が、この文章では意味がおかしい。恐らく日本語翻訳のミスで、正しくは「ファイルの名前を変更しようとしています。このプロジェクト内に存在する、コード要素 'Form1'へのすべての参照を、同じように名前変更しますか?」だろう)。ここで[はい]を選択すれば、クラス名が「Form1」から「Display」に変更され、プロジェクト内で使われている「Form1クラス」がすべて「Displayクラス」に変更される。ちなみに[いいえ]を選択すると、ファイル名の変更だけで、クラス名は変更されない。
  上記のリファクタリング機能によりクラス名は「Display」に変更されているはずだ。手動で変更するには、フォームをクリックして(誤ってダブルクリックしないように注意すること)、[プロパティ]ウィンドウの「デザイン」カテゴリの中にある[(Name)]項目の値を変更すればよい。

 以上の設定が終わったら、プログラムが正常なソース・コードになっているかどうか確認するために、1度プログラムをビルドしてみよう。ビルドはメニュー・バーから[ビルド]−[ソリューションのビルド]を実行する。

 すると、正常にビルドが終了するはずである。

ビルド・エラーへの対処方法

 しかし、例えば「型または名前空間名 'Form1' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」というビルド・エラーが表示されるような場合は、先ほどのクラス名を「Form1」から「Display」に変更する作業が完全でなく、まだ「Form1」という名前を使用しているコードが残っている。

 このようなビルド・エラーが発生した場合には、次の画面のようにして、適切な修正を行う必要がある(この例では、ソース・コードの「Form1」部分を「Display」に変更する)。

ビルド・エラーの対処方法
ビルド・エラーが発生すると、[エラー一覧]にビルド・エラーの内容が表示される。
  ビルド・エラー項目をダブルクリックすると、自動的にコード・エディタが開いて、エラーがあるソース・コードの場所にジャンプする。
  適切な修正を行う。ここでは「Form1」を「Display」に変更する。

 以上で再度ビルドを実行すると、今度は正常に終了するはずである。VS 2005では、ビルド・エラーの修正は、このようにして行うので、覚えておいてほしい。

コントロールやコンポーネントを配置する

 次に「(b)Labelコントロール」の「timeNow」オブジェクトを配置する。これには、次の画面のように、[ツールボックス]からLabelコントロールをフォーム上にドラッグ&ドロップして、コントロールのオブジェクト名を「timeNow」に変更すればよい(なお、コントロールのオブジェクトとは、「コントロールのクラスがフォーム上で実体となったもの」という意味)。

(b)Labelコントロールの「timeNow」オブジェクトの配置
Windowsフォーム・デザイナで、WindowsフォームにLabelコントロールを配置し、コントロールのオブジェクト名を「timeNow」に変更する。
  [Display.cs [デザイン]]タブをクリックして、Display.csファイルをWindowsフォーム・デザイナで開く(ちなみに、タブの名前の最後にある「*」は、そのファイルに何らかの変更が加わっていることを意味する)。
  [ツールボックス]ウィンドウの[コモン コントロール]タブをクリックして、既存コモン・コントロールの一覧を表示し、そこからLabelコントロールをWindowsフォーム上にドラッグ&ドロップする。
  Labelコントロール・オブジェクトのプロパティを設定するために、Windowsフォーム上に追加されたLabelコントロールをクリックして選択する。
  [プロパティ]ウィンドウの「デザイン」カテゴリの中にある[(Name)]項目の値を、「timeNow」に変更することで、コントロールのオブジェクト名が変わる。

 最後に、「(c)Timerコンポーネント」の「secTimer」オブジェクトを挿入する。これを行うには、次の画面のように[ツールボックス]ウィンドウからTimerコンポーネントをフォーム上にドラッグ&ドロップして、コンポーネントのオブジェクト名を「secTimer」に変更するだけだ(なお、コンポーネントのオブジェクトとは、「コンポーネントのクラスがフォーム内で実体となったもの」という意味)。

(c)Timerコンポーネントの「secTimer」オブジェクトの挿入
Windowsフォーム・デザイナで、Windowsフォーム上にTimerコンポーネントをドラッグ&ドロップして追加し、コンポーネントのオブジェクト名を「secTimer」に変更する。
  (Display.csファイルをWindowsフォーム・デザイナで開いた状態で)[ツールボックス]ウィンドウの[コンポーネント]タブをクリックして既存コンポーネントの一覧を表示し、TimerコンポーネントをWindowsフォーム上にドラッグ&ドロップする(なお、追加されたコンポーネント・オブジェクトは、コントロールのようにWindowsフォーム上に表示されるのではなく、Windowsフォーム・デザイナの下部にあるコンポーネント領域に表示されるので注意してほしい)。
  Timerコンポーネント・オブジェクトのプロパティを編集するために、Windowsフォーム・デザイナ下部のコンポーネント領域に表示されているTimerコンポーネントをクリックして選択する。
  [プロパティ]ウィンドウの「デザイン」カテゴリの中にある[(Name)]項目の値を、「secTimer」に変更することで、コンポーネントのオブジェクト名が変わる。

 ここで再びビルドを行おう。ビルドが正常に終了するはずだ。これで、先の設計図で挙げた3つのオブジェクトがプログラム内にすべてそろったことになる。次にこれらのオブジェクトの外観や動作などの性質、つまりプロパティを詳細に設定していこう。


 INDEX
  [フレッシュマン企画 連載]簡単!Visual Studio 2005入門
  第5回 初めてのWindowsアプリケーションの開発
    1.Windowsアプリケーション開発の手順
  2.コントロールやコンポーネントを配置する
    3.クラスやオブジェクトのプロパティ(性質)を変更する
    4.オブジェクトのイベント・ハンドラを追加する
    5.複数の処理を1つのメソッドにまとめるには?

インデックス・ページヘ  「簡単!Visual Studio 2005入門」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間