連載改訂版 プロフェッショナルVB.NETプログラミングChapter 07 Windowsアプリケーションの構造 株式会社ピーデー 川俣 晶2004/05/13 |
|
本記事は、(株)技術評論社が発行する書籍『VB6プログラマーのための入門 Visual Basic .NET 独習講座』の一部分を許可を得て転載したものです。同書籍に関する詳しい情報については、本記事の最後に掲載しています。 |
Visual Basicの主役といえば、フォーム上にコントロールを配置し、ウィンドウ表示で実行されるWindowsアプリケーションである。このほかにも多くの種類のプログラムが開発可能になっており、その種類もVB.NETでさらに増えているが、Visual Basicの最初のバージョンから一貫してサポートされてきたものがWindowsアプリケーションである。その構造は、これまで大きく変化することはなかったが、VB.NETでは大きく変わっている部分がある。本連載は、言語仕様の変化を中心に扱うため、個々のコントロールの詳細には立ち入らないが、基本的な書き方の相違はこの章で解説している。Windowsアプリケーション開発者は、この章の内容を活用していただきたい。
単純なWindowsアプリケーション |
フォーム上にボタンを1個配置し、そのボタンをクリックしたときにメッセージボックスを表示するプログラムを作成して、VB 6とVB.NETの場合を比較してみよう。
まず、VB 6の場合は図7-1のようにフォーム上にボタンを貼り付ける。ボタンを貼り付けたら、そのボタンをダブルクリックして、コードを「MsgBox "Clicked!"」と入力する。フォームやボタンのサイズは適当に調整しよう。
●図7-1 VB 6でフォームにボタンを配置し、そのボタンをダブルクリックしてコードを入力 |
コードは以下のようになる。
|
|
リスト7-2 メッセージボックスを表示するプログラム |
これを実行すると以下のようになる。
●図7-3 リスト7-2の実行画面(左)と、Command1ボタンをクリックすると開くメッセージボックス(右) |
見てのとおり、ソース・コードはたったの3行である。Command1_Clickというプロシージャが、Command1というボタンのクリックイベントに対応することは容易に推測できる。もしかしたら、Privateといったキーワードの意味が分からないかもしれないが、システムが自動的に挿入してくれるものであるし、無視する気になれば容易に無視できるものである(Privateは、そのクラス外から利用することができないようにする役割を持つキーワード。VB 6にもあるキーワードなので、本連載では詳しい解説は行っていない)。
では、次にVB.NETで同じことをしてみよう。まず、フォームはVB 6で作成したのと同様に作成することができる。
●図7-4 VB.NETでフォームにボタンを配置し、そのボタンをダブルクリックしてコードを入力 |
次にボタンをダブルクリックして、ボタンのイベント処理メソッドを作成させ、「MsgBox("Clicked!")」とイベント処理の内容を入力する。
|
|
リスト7-5 メッセージボックスを表示するプログラム |
これを実行すると以下のようになる。
●図7-6 リスト7-5の実行画面(左)と、Button1ボタンをクリックすると開くメッセージボックス(右) |
VB 6では3行だったソースが9行になった。しかし、9行ですべてというわけではない。VB.NET上で「Windowsフォームデザイナで生成されたコード」と書かれた行の左側にある四角に囲まれた「+」記号をクリックすると、隠されたコードが現れる。参考までにその内容を以下に示す(リスト7-7)。
|
|
リスト7-7 VB.NETでのソース・コード全文(Visual Studio .NET 2003でのもの。 2002の場合は少し異なるが基本的には同じである) |
このように、VB 6ではたった3行だったものが、VB.NETでは61行にもなっている。単に行数が多いだけではない。イベント処理を行うメソッドの宣言を見比べてほしい。VB 6では、
Private Sub Command1_Click()
となっていて、引数は存在せず、非常にシンプルである。それに対して、VB.NETでは、
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
と非常に長くなっていることが分かるだろう。引数は2個あり、その上、Handles Button1.Clickという見慣れないキーワードも付いている。これらの相違は、VB 6に比べてVB.NETは難しくなったかのような印象を与えるかもしれない。もちろん、自動的に生成されるコードのことは知らなくても構わないという考え方もある。しかし、これらのコードは決して無意味に存在するものではない。意味を知っていれば、さまざまな応用に利用できるものであるから、次節で詳しく解説する。
なお、Handlesキーワードに関しては、イベントを処理する(本連載Chapter 12で公開予定)で解説を行っている。
INDEX | ||
[連載] 改訂版 プロフェッショナルVB.NETプログラミング | ||
Chapter 07 Windowsアプリケーションの構造 | ||
1.単純なWindowsアプリケーション | ||
2.フォームデザイナによって生成されたコード/プロパティ値の設定により変化するコード | ||
3.ボタンの配置により生成されるコード | ||
「改訂版 プロフェッショナルVB.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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
- - PR -