KEN's .NET

[初心9] Formクラスに触れてみる

ホーム > KEN's .NET > [初心9] Formクラスに触れてみる

ここではプログラミングがはじめての人のための解説をおこないます。 今回は、Windowsアプリケーション作成の土台になるFormクラスの基礎を学ぶと同時にインスタンスの作成に慣れます。

0.はじめに

まずは、下記の図とコードをご覧下さい。

フォーム
   図1 Form(ウィンドウ)

   1:'vbc /t:winexe /out:Module9_1.exe /r:System.dll,System.Drawing.dll,System.Windows.Forms.dll
   2:'    /optimize+ /optionstrict+ Module9_1.vb
   3:Imports System.Windows.Forms
   4:
   5:Module Module9_1
   6:    Sub Main()
   7:
   8:        Dim f As Form
   9:        f = New Form()
  10:        f.Text = "はじめてのプログラミング"
  11:        f.ShowDialog()
  12:
  13:    End Sub
  14:End Module
   図2 Form(ウィンドウ)(図1)を表示するプログラム

図1のような画面をFormといいます。IEなどのブラウザやメモ帳、その他、一般的な多くのアプリケーションでは画面を持っており、 それをウィンドウと言いますが、VB.NETプログラミングではForm(フォーム)ということが多いです。 それは画面を表示するためのクラスをFormクラスといい、いろいろな画面の雛形(=Form)となるからです。 さて、前置きはこれくらいにして、この図1の画面を表示しているプログラム(図2)を見ていきましょう。
  • 1行目、2行目はこのプログラムのコンパイル方法をメモしたコメントです。
  • 3行目は、Formクラスなどを使うためのおまじないです。(VB.NETの用語ではImportsステートメント、名前空間などを学習する必要があるので、今回は詳しい話は省きます)
  • 5行目Moduleから14行目End Moduleまでの間はモジュールというプログラムの一つの単位になっており、 この間に実際のプログラムを書きます。Module9_1というのがこのモジュールに対して付けた名前です。(この部分についてもこう書くものと思ってください)
  • 6行目Subから、13行目End Subまでがプロシージャという単位になっており、特にSubプロシージャといいます。このSubプロシージャの名前がMainとなっていますが、 VB.NETではMainプロシージャからプログラムが開始するという決まりになっており、プログラムはここから開始されます。
  • 6行目から入って、8行目がまず最初に実行されますが、ここでは変数fをForm型で宣言しています。
  • 9行目は、Formクラスのインスタンスを作成しています。前回、説明しましたが、インスタンスはString型の"あいう"やInteger型の「3」のあたるものですね。 StringやInteger型は基本的な型なので特別扱いされていますが、通常のクラスを使うにはNewを使ってインスタンスを作成する必要があります。
  • 10行目は、FormクラスのインスタンスfのTextプロパティに文字列"はじめてのプログラミング"を設定しています。FormクラスのTextプロパティは、 ウィンドウのタイトルを表すものとして定義されているので、図1にあるようにウィンドウのタイトルに表示されます。
  • 11行目は、FormクラスのインスタンスfのShowDialogメソッドを実行することでfを表示しています。 つまり、この行までプログラムが実行されてはじめてフォームは表示されます。それまでは見えていない状態(非表示)です。
  • その後、このフォームの右上にある「X」ボタンをクリックすると、フォームは閉じられ、プログラムは終了します。

1.フォームfの大きさを変える

図1を見るとやたらと大きくてこの説明のためだけにあんなに大きいのもどうかと思います。 そこで、フォームのサイズを小さくしてみましょう。
小さめのフォーム
   図3 小ささめのForm

   1:'vbc /t:winexe /out:Module9_2.exe /r:System.dll,System.Drawing.dll,System.Windows.Forms.dll
   2:'    /optimize+ /optionstrict+ Module9_2.vb
   3:Imports System.Windows.Forms
   4:Imports System.Drawing
   5:
   6:Module Module9_2
   7:    Sub Main()
   8:
   9:        Dim f As Form
  10:        f = New Form()
  11:        f.Text = "はじめてのプログラミング"
  12:        f.Size = New Size(250,50)
  13:        f.ShowDialog()
  14:
  15:    End Sub
  16:End Module
   図4 小さめのFormを表示するプログラム

図1から図3のような画面に変更します。ソースコードは図2から図4のように変更します。 下線の引いてある4行目と12行目が変更点です。FormクラスにはSizeプロパティというフォーム大きさを決めるプロパティがあります。 このSizeプロパティにはSizeクラス(正確にはSize構造体。構造体について今後の講座で説明しますが、今はクラスと同じものと思っておいて下さい)のインスタンスを設定する必要があります。
  • Sizeクラスを利用するために、4行目のおまじないを追加します。
  • 14行目でフォームのSizeプロパティの設定をします。Sizeクラスは幅と高さを持つので、 インスタンスの作成時に幅と高さを指定します。ここでは250、50を指定しています。 これによりフォームfは幅250ピクセル(Pixel=画面の1点を表す単位)、高さ50ピクセルになります。

2.学んだこと

キーワード:Formクラス、Size構造体、Newキーワード、インスタンスを作成すること、Mainプロシージャ
  • Formクラスはウィンドウを表すクラス。
  • Size構造体はサイズを表すクラス。幅、高さがある。
  • プログラムはMainプロシージャからはじまる。

3.ソースコード

今回、紹介したソースコード、実行ファイル(EXE)をbeginner9.lzhファイルにまとめました。 lzhはVectorなどのオンラインソフトのサイトにあるたいていの解凍ツールで解凍できますので、ツールをお持ちでない場合は入手して解凍して下さい。 beginner9.lzhには、下記のファイルを収録してあります。
  • Module9_1.vb
  • Module9_1.exe
  • Module9_2.vb
  • Module9_2.exe
beginner9.lzh


ホーム > KEN's .NET > [初心9] Formクラスに触れてみる

[e-mail]yone_ken00@hotmail.com