連載
» 2004年08月14日 00時00分 公開

連載 オブジェクト指向プログラミング超入門:第3回 Windowsアプリケーションの正体 (1/4)

オブジェクトとクラスを学んだら、次はクラス・ライブラリを使ってみよう。これを使えばWindowsアプリケーションの作成も簡単。

[遠藤孝信,デジタルアドバンテージ]
連載 オブジェクト指向プログラミング超入門 ― .NETでオブジェクト指向プログラミングを始めよう ― 
Insider.NET

 

「連載 オブジェクト指向プログラミング超入門 ― .NETでオブジェクト指向プログラミングを始めよう ― 」のインデックス

連載目次

 今回は、C#およびVisual Basic .NET(以下、VB.NET)でWindowsアプリケーションを作成するための基礎について解説します*1。本連載の目的であるオブジェクト指向プログラミングからは少し離れてしまうかもしれませんが、せっかくプログラミングするからには、プログラムからそれなりのリアクションがあった方が面白いですから。.NETではWebアプリケーションから、Webサービス、Windowsサービス、コンソール・アプリケーションと何でも作れますが、簡単に出来上がって、すぐに使えるWindowsアプリケーションはプログラミングの入門にはうってつけです。

*1 前回の最後では、今回は「継承」について解説すると予告していましたが、これは次回とさせてください。


 具体的には、前回までで作成したFormクラスの代わりに、.NET Frameworkのクラス・ライブラリで提供されているFormクラスを利用していきます。このFormクラスは実際にウィンドウを表示させることができます。つまり、Windowsアプリケーションを作ることができます。

 本来Windowsアプリケーションを作成するには、Visual Studio .NET(以下、VS.NET)を使うのが一番です。この極めて便利な統合開発環境を使えば、C#やVB.NETでも、かつてのVisual Basic 6.0で行ってきたような簡単ビジュアル・プログラミングができます。

 もちろんこれは、VS.NETが持つデザイン機能と、そのデザインからコードを自動生成する機能によるところが大きいのですが、Windowsアプリケーション構築のために用意された高機能なクラス・ライブラリがそれを支えています。実際、今回ご覧いただくようにVS.NETのデザイン機能を使わずに、コード入力だけでもWindowsアプリケーションは簡単に作れます。

クラス・ライブラリにあるFormクラスの利用

 さて、前回までで次のような2つのクラスからなるプログラムを作成しました。短いプログラムなので、もう一度掲載しておきます。

 まず、Formクラスはウィンドウを表示する(つもりの)クラスです。

 MyApplicationクラスは、そのFormクラスのオブジェクトを作成し、Textプロパティによりタイトルバー文字列を設定してから、Showメソッドを呼び出してウィンドウを表示します。とはいうものの、上記のFormクラスではShowメソッドで何もしていませんので、実行してもウィンドウを表示することはできません。

 実際にウィンドウを表示するFormクラスが、クラス・ライブラリとして、.NET Frameworkに含まれています。これは簡単にいうと、マイクロソフトが作成したFormクラスが、コンパイルされた形で.NETシステムに含まれているということです。

 こちらのFormクラスでは、内部でWindows OSの機能(Win32 API)を呼び出しており、実際にウィンドウを表示することができます。これを使ってみましょう。

■System.Windows.Forms.Formクラス

 クラス・ライブラリ*2に含まれるFormクラスは、正式名称が「System.Windows.Forms.Form」という長い名前のクラスとなっています。

*2 以降は単にクラス・ライブラリと記述した場合、.NET Frameworkにデフォルトで含まれるクラス・ライブラリのことを指しています。このクラス・ライブラリには8000を超えるクラスが含まれています。そしてこれらのクラスは約200個の名前空間(後述)で分類されています。


 取りあえずこの長い名前のクラスを使って、上記のMyApplicationクラスの「Form」の部分を書き換えると次のようになります。

 このプログラムをVS.NETで実行してみましょう。まず新しいプロジェクトとして「Windowsアプリケーション」を選択してプロジェクトを新規作成します。次に、コード表示に切り替えて、自動作成されているコードをすべて消去してから、上記のプログラムをコピー&ペーストしてください。

図1 VS.NETに書き換えたMyApplicationクラスをコピー&ペーストしたところ
新しいプロジェクトとして「Windowsアプリケーション」を選択してプロジェクトを新規作成し、コード表示に切り替えて自動作成されているコードをすべて消去してから、上記のコードをコピー&ペースする。なおVB.NETの場合、プログラムを実行しようとすると「Sub Mainが見つからない」というビルド・エラーが発生するが、タスク一覧上でそのエラー表示をダブルクリックし、開くダイアログでスタートアップ・オブジェクトを設定すれば実行できる。

 そして[F5]キーを押すなどしてプログラムを実行すれば、(すぐに消えますが)次のようなウィンドウが表示されるはずです。

図2 一瞬だけ表示されるウィンドウ
クラス・ライブラリにあるFormクラスを使っているので実際にウィンドウが表示される。しかし現時点では、このウィンドウはすぐに閉じられプログラムは終了する。

 なぜウィンドウがすぐに消えてしまうかは後述するとして、ウィンドウが現れたことから、正しくクラス・ライブラリにあるFormクラスのオブジェクトが生成でき、Showメソッドの呼び出しも成功したことが分かります。

 ここで、図1のVS.NET内の右上に表示されているソリューション・エクスプローラの[参照設定]という項目を見てください。プロジェクトとして「Windowsアプリケーション」を選択した場合には、あらかじめ「System.Windows.Forms」という項目が含まれています。これは、.NET FrameworkをインストールしたときにハードディスクにコピーされるSystem.Windows.Forms.dllというファイルを、プログラムのコンパイル時に参照することを示しています。

図3 Formクラスを利用したウィンドウの表示
MyApplicationクラスのコンパイル時には、System.Windows.Forms.dllのFormクラスが参照される。これにより実行時にFormクラスのインスタンスを作成することができる。

 このDLLファイルには、コンパイル済みマイクロソフト製Formクラスが含まれています。これを参照しているため、いま作成したMyApplicationクラスでFormクラスのインスタンスが作成できるわけです。

       1|2|3|4 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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