§1 VB2005によるプログラム作成3 | プログラミング実習 |
【5】 プロパティとメソッド
プロパティのデータは、プロパティウィンドウで設定(変更)するだけでなく、プログラムでも設定することができる。また、メソッドもイベントに対応したものだけでなく、プログラマが自由に作ることができる。
操作 17 ボタンを1つ追加し、プロパティを次のように設定する。
(Name) | MoveButton | Text | ボタン移動 |
Location | 100, 50 |
操作 18 [ボタン移動](MoveButton)ボタンのクリックイベントに対応するメソッドを次のように作成する。
Private Sub MoveButton_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MoveButton.Click
EndButton.Left = 0
EndButton.Top = 100
End Sub
「endbutton.」とドットまで入力すると、図のようにEndButtonオブジェクトのプロパティやメソッドの候補リストが表示される。
続けて、「endbutton.le」まで入力すると候補リストのLeftが選択状態になる。続けて、「=」または「 」(空白)を入力するとLeftの不足部分が補われる。
「EndButton.Left」とは、「EndButton」オブジェクト(終了ボタン)の「Left」プロパティを表す。オブジェクト名とプロパティ名を「.」(ドット)でつないで表す。「EndButton.Top」も同じである。
Leftプロパティはウインドウの左側のフレーム(枠)からの距離、Topプロパティはウィンドウ上部のフレームからの距離である。単位はピクセルである。
操作 19 プログラムを実行する。[ボタン移動]ボタンをクリックする。
[終了]ボタンがウィンドウの左端に移動する。
候補リストのアイコンは、次の通りである。 … プロパティ … メソッドプログラムの中では、プロパティを「オブジェクト名.プロパティ名」の形式で、メソッドは「オブジェクト名.メソッド名」の形式で表す。
操作 20 ボタンをもう1つ追加し、プロパティを次のように設定する。
(Name) | SizeButton | Text | サイズ変更 |
Location | 180, 50 |
操作 21 [サイズ変更](SizeButton)ボタンのクリックイベントに対応するメソッドを次のように作成する。
Private Sub SizeButton_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles SizeButton.Click
EndButton.Width = 150
EndButton.Height = 100
End Sub
操作 22 プログラムを実行する。[サイズ変更]ボタンをクリックする。
[終了]ボタンのサイズが大きくなる。
○ メソッドの作成
イベントに対応するメソッドと同じような形で、プログラマが自由に作成することができる。ここでは、フォームの背景色を赤色にするメソッドを作成する。
操作 23 次のメソッド(ChangeColor)を最後の行の「End Class」の直前に追加する。
Private Sub ChangeColor()
Me.BackColor = Color.Red
End Sub
End Class
フォームの背景色なので、Form1.BackColorとしたいところであるが、エラーとなる。Form1はMeで表すようである。
Color.Redは候補リストで"r"を入力すると選択できる。
操作 24 ボタンをもう1つ追加し、プロパティを次のように設定する。
(Name) | ColorButton | Text | 背景色 |
Location | 260, 50 |
操作 25 [背景色](ColorButton)ボタンのクリックイベントに対応するメソッドを次のように作成する。
Private Sub ColorButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ColorButton.Click
ChangeColor() '→ "Me.ChangeColor()"でも良い
End Sub
作成したChangeColorメソッドを呼び出すには、メソッド名を記述するだけである。
操作 26 プログラムを実行する。[背景色]ボタンをクリックする。
ウィンドウの背景色が赤色になる。
フォームの背景色をプログラムで変更するとき、「BackColor」プロパティには色の名前(Color.Red)で設定した。「Color」はVBに用意されている色のオブジェクト名で「Red」がプロパティ名である。プログラムでは、「BackColor」プロパティに「Color」オブジェクトの「Red」プロパティのデータを代入している。
色のデータの表し方には、光の三原色である赤、緑、青(RGB:Red,Green,Blue)のデータで表すこともできる。赤色のRGBデータは、R=255、G=0、B=0である。RGBデータで「BackColor」プロパティにデータを設定するには、次のように記述する。
Me.BackColor = Color.FromArgb(255, 0, 0)
「Color」オブジェクトの「FromArgb」メソッド(プロパティではない)を使って、RGBデータを「BackColor」プロパティに代入できるデータに変換している。
オブジェクトのメソッドを表すときもプロパティと同じように「.」でつないで表す。
詳しくは、ヘルプなどで調べてみよう。
オブジェクトはデータ(プロパティ)と手続き(メソッド)の集合体である、という考えでプログラムを記述する技法を「オブジェクト指向プログラミング」という。
イベントに対応するメソッドの定義部の形式は次の通りである。
Private Sub メソッド名(引数) Handles イベント名
イベント名には、このメソッドが取り扱うイベント名を記述する。例えば、ボタン移動のメソッドの定義部は次のように記述されている。
Private Sub MoveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MoveButton.Click
これを次のように変更(追加)する。
Private Sub MoveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MoveButton.Click, SizeButton.Click
実行して、[サイズ変更]ボタンをクリックすると[終了]ボタンが大きくなるとともに左側に移動する。
[サイズ変更]ボタンをクリックするとSizeButton_ClickメソッドとMoveButton_Clickメソッドの両方が実行されるためである。
オブジェクトの配置座標は「Locateion」プロパティで設定した。しかし、プログラム([ボタン移動]のメソッド)で配置場所を変更するときは「Left」プロパティと「Top」プロパティを使った。「Locateion」プロパティで配置場所を変更するには、次のように記述する。
EndButton.Location = New Point(0, 100)
同じように、サイズ変更には「Size」プロパティではなく、「Width」プロパティと「Height」プロパティを使った。「Size」プロパティでサイズを変更するには、次のように記述する。
EndButton.Size = New Size(150, 100)
詳しくは、ヘルプなどで調べてみよう。
§1 VB2005によるプログラム作成3 | Copyright©2008 Hiroshi Masuda |