第4回 Visual Studio 2010のひな型コードを理解する:フレッシュマン企画 連載 簡単!Visual Studio 2010入門(4/4 ページ)
開発環境が自動生成するWindowsアプリケーションのひな型コード。これをマスターして本格的なVisual Studio開発に乗り出そう。
■ひな型コード全体の流れ
以上でひな型コード全体をすべて解説したことになる。まとめとして、これまでのすべての処理の流れを、Mainメソッドから順番に追っていくことにしよう。
- アプリケーションのエントリ・ポイントであるMainメソッドが、Windowsシステム(厳密には.NETの実行エンジン)によって呼び出される
- 呼び出されたMainメソッドは、Form1オブジェクトを生成し、そのForm1オブジェクトを使ってメッセージ・ループを開始するためにApplication.Runメソッドを呼び出す。これによりForm1オブジェクト、すなわちWindowsフォーム画面が実行されることになる
- Windowsフォームを初期化するために、コンストラクタのForm1メソッドが呼び出され、Form1メソッドからInitializeComponentメソッドが呼び出される
(実際には、2の「Form1オブジェクト生成」のタイミングで、これらの処理が行われる) - InitializeComponentメソッド内でForm1オブジェクト(=Windowsフォーム画面)の初期値などを設定する
(実際には、2の「Form1オブジェクト生成」のタイミングで、この処理が行われる) - Windowsフォーム画面が開かれ(第1回の「生成されたプログラムを動かす」を参照)、ユーザーがフォーム画面を操作できるようになる
(実際には、2の「Application.Runメソッド呼び出し」中に、この処理が行われる) - 実行中のプログラムの右上の[×]ボタンを押せばWindowsフォーム画面が閉じられる
(実際には、2の「Application.Runメソッド呼び出し」中に、この処理が行われる) - Form1オブジェクトのDisposeメソッドが呼ばれて、終了処理が行われる
(実際には、2の「Application.Runメソッド呼び出し」中に、この処理が行われる) - Application.Runメソッドが終了し、Mainメソッドの中の処理がすべて完了するので、アプリケーション自体が終了する
■[Properties]/「My Project」フォルダ内のファイルについて
Windowsアプリケーションのひな型コードの解説はこれですべて終わりだが、前回「ソリューション・エクスプローラの内容」で説明を省略したソース・ファイルがいくつかある。それらのファイルはすべて[ソリューション エクスプローラ]の「Properties」フォルダ(VBでは「My Project」フォルダ)内に配置されており、VS 2010のIDEでプロジェクトのプロパティを設定・変更するとそのデータ内容が自動的に書き込まれるようになっているため、開発者が手動で編集することは(基本的に)ない。
具体的には、以下の画面に示すファイルだ。
[Properties]フォルダ(C#)に格納されたVS 2010が取り扱うファイル群
プロジェクトのプロパティを設定したり変更したりすると、これらのファイルの内容が書き換わる。プロジェクトのプロパティは、「Properties」フォルダ(VBでは「My Project」フォルダ)をダブルクリックすると表示される。
例えば、この図にある「AssemblyInfo.cs」というソース・ファイルは、プログラムのバージョン情報に関する設定データがするためのものだ。詳しくは、「.NET TIPS:Visual Studio 2010でバージョン情報を設定するには?」を参照していただきたい。
また、「Resources.resx」ファイルは、アプリケーションで使用する文字列やグラフィックなどのデータ(=「リソース」と呼ばれる)を格納するためのもの。これについては「.NET TIPS:文字列リソースを活用するには?」を参考にしてほしい。
「Settings.settings」ファイルは、アプリケーションの挙動を決めるなどの用途に使うアプリケーション設定データを保存するためのものである。詳細な内容については「.NET TIPS:アプリケーション設定を活用するには?」を参照してほしい。
今回は、Windowsアプリケーションのひな型コードの内容について解説した。次回は、実際のアプリケーション構築を例に、プログラミング作業の手順であるコードの追加・編集やデバッグについて解説する予定だ。次回もご期待いただきたい。
Copyright© Digital Advantage Corp. All Rights Reserved.