連載
プロフェッショナルVB.NETプログラミング
第24回 Windowsアプリケーションの仕組み
(株)ピーデー
川俣 晶
2002/11/09
|
 |
ボタンの配置により生成されるコード
さて、ここでさらにツールボックスのButtonをダブルクリックして、ボタンを1つ貼り付けてみよう。そして、プロパティ・ウィンドウから、Textプロパティに「Sample」と入力してみる。
 |
前ページのフォームにボタンを貼り付け、ボタンのTextプロパティに「Sample」と入力 |
この修正後に、ソース・コードは以下のように変化した。
1: Public Class Form1
2: Inherits System.Windows.Forms.Form
3:
4: #Region " Windows フォーム デザイナで生成されたコード "
5:
6: Public Sub New()
7: MyBase.New()
8:
9: ' この呼び出しは Windows フォーム デザイナで必要です。
10: InitializeComponent()
11:
12: ' InitializeComponent() 呼び出しの後に初期化を追加します。
13:
14: End Sub
15:
16: ' Form は dispose をオーバーライドしてコンポーネント一覧を消去します。
17: Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
18: If disposing Then
19: If Not (components Is Nothing) Then
20: components.Dispose()
21: End If
22: End If
23: MyBase.Dispose(disposing)
24: End Sub
25:
26: ' Windows フォーム デザイナで必要です。
27: Private components As System.ComponentModel.IContainer
28:
29: ' メモ : 以下のプロシージャは、Windows フォーム デザイナで必要です。
30: ' Windows フォーム デザイナを使って変更してください。
31: ' コード エディタは使用しないでください。
32: Friend WithEvents Button1 As System.Windows.Forms.Button
33: <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
34: Me.Button1 = New System.Windows.Forms.Button()
35: Me.SuspendLayout()
36: '
37: 'Button1
38: '
39: Me.Button1.Name = "Button1"
40: Me.Button1.TabIndex = 0
41: Me.Button1.Text = "Sample"
42: '
43: 'Form1
44: '
45: Me.AutoScaleBaseSize = New System.Drawing.Size(5, 12)
46: Me.BackColor = System.Drawing.Color.Yellow
47: Me.ClientSize = New System.Drawing.Size(292, 273)
48: Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1})
49: Me.Name = "Form1"
50: Me.Text = "VB.NET Sample"
51: Me.ResumeLayout(False)
52:
53: End Sub
54:
55: #End Region
56:
57: End Class
|
|
ボタンを貼り付け、そのTextプロパティを変更した場合のInitializeComponentメソッド |
ボタンが増えたことで、さらにコードが増えたことが分かるだろう。32行目は、ボタンのインスタンスを保持する変数である。WithEventsキーワードが付加されているが、これは、Handlesキーワード(詳細は追って解説)によってイベント処理を行う対象に付けるものである。WithEventsキーワードを付けなければHandlesキーワードでイベント処理を行うことができない。34行目は、ボタン・コントロールのインスタンスの作成を行っている。VB 6では、動的にコントロールを作成するテクニックを使う場合を除き、コントロールは自動的に生成された。しかし、VB.NETでは必ず明示的に作成しなければならない構造になっている。もちろん、フォーム・デザイナを使えば自動的に作成するコードが生成されるので、通常見えないソース・コードまで意識しないのなら、VB 6と同じということもできる。
次に35行目のSuspendLayoutメソッドと、51行目のResumeLayoutメソッドだが、これはコントロールのレイアウト変更を通知するイベントを抑止する効能がある。つまり、35行目と51行目の間のコードはレイアウト変更関連のイベントを発生させない。コントロールの初期設定を行っている最中に、いちいちイベントを起こさないということである。
39〜41行目はボタンのプロパティの設定である。これについては、細かく説明する必要はないだろう。
さて、フォームに関しても、48行目に新規に挿入されたコードがある。これは、確かに、ボタンがフォームの上に配置されたコントロールであることを設定するために追加されたコードである。このコードがなければ、ボタンはフォーム上に配置された存在とは認知されないことになる。
これらの知識は、知らなければ知らないままでも利用することができる。しかし、知っていれば、より高度な使いこなしの役に立つだろう。
次回予告
今回はボタンを押したときに必要となるイベント処理については詳しく触れなかった。次回では、このイベントと、イベントを処理するイベント・ハンドラについて解説する予定だ。
Insider.NET 記事ランキング
本日
月間