第5回 初めてのWindowsアプリケーションの開発フレッシュマン企画 連載 簡単!Visual Studio 2010入門(2/5 ページ)

» 2010年07月07日 00時00分 公開
[一色政彦デジタルアドバンテージ]

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

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

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

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

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

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

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

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

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

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

■コントロールやコンポーネントを配置しよう

 次に「(b)Labelコントロール」の「timeNow」オブジェクトを配置する。

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

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

 最後に、(c)Timerコンポーネントの「secTimer」オブジェクトを挿入する。

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

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

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

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。