§7 アニメーション(2)2 プログラミング実習
 back next 

【3】 特別なイベント(1) Load

 VBで作成したプログラムを実行するとイベントが発生するのを待ち続け、イベントが発生するとそのイベントに対応するメソッドのプログラムが実行される。
 特別なイベントの1つに、「Load」イベントがある。フォームに対するこのイベントは、最初にプログラムをメモリに読み込んで実行したときに一度だけ発生する。
 次に、画像をウィンドウ内側の幅の中央からスタートするようにする。

操作 5 フォームのLoadイベントに対応するFome1_Loadメソッドを次のように作成する。
 デザインウィンドウで、フォームをダブルクリックすると、Fome1_Loadメソッドの定義部が表示される。

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        MainPict.Left = (Me.ClientSize.Width - MainPict.Width) / 2
    End Sub

ウィンドウ内側の幅は、Me.ClientSize.Widthプロパティで参照できる。

ウィンドウ内側のサイズ

操作 6 プログラムを実行する。

結果 実行すると画像がウィンドウの中央からスタートする。

※ ウィンドウ内側のたて方向の中央からスタートさせるにも、同じように内側の高さの1/2から画像の高さの1/2を減じた値が座標となる。

MainPict.Top = (Me.ClientSize.Height - MainPict.Height) / 2

 

【4】 特別なイベント(2) Form Closing

 Me.Close()などで実行が終了する前に発生するイベントとして「FormClosing」イベントがある。
 次に、このイベントを使ってプログラム終了の確認をする。

操作 7 FormClosingイベントに対応するFome1_FormClosingメソッドを準備する。
 クラス名(図@)に「(Form1 イベント)」、イベント名(図A)に「FormClosing」を選択して入力する。

実習6アニメーション、コードウィンドウ

操作 8 Fome1_FormClosingメソッドを次のように作成する

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Dim res As Integer
メッセージボックス        res = MsgBox("終わりますか", MsgBoxStyle.YesNo)
        If res = MegBoxResult.No Then
            e.Cancel = True '終了をキャンセルする。
        End If
    End Sub

 MsgBox関数では、[はい]ボタンでMsgBoxResult.Yes、[いいえ]ボタンでMsgBoxResult.Noが得られる。
 終了をキャンセル(取りやめる)場合は、「e.Cancel = True」とする。ここでの「e」はメソッドの定義の引数で受け取ったSystem.Windows.Forms.FormClosingEventArgs型のデータである。

操作 9 プログラムを実行する。

結果 閉じる×ボタンをクリックすると終了確認のダイアログが表示される。

 


メッセージボックス(MsgBox)

 メッセージを表示するだけであれば、次のような形で命令を書くことで、メッセージと[OK]ボタンが表示される。

MsgBox("メッセージ")

 今回のように、複数のボタンを表示して、押されたボタンの種類を調べるには、次のような関数で命令を書く。

変数 = MsgBox("メッセージ", MsgBoxStyle)

 MsgBoxStyleのプロパティ(正確には、MsgBoxstyle列挙体という)で表示するボタンを設定することができる。"MsgBoxStyle.OKOnly"のような形式で使う。

列挙体 説明
OKOnly 0  [OK] ボタンのみを表示。
OKCancel 1  [OK] ボタンと [キャンセル] ボタンを表示。
AbortRetryIgnore 2  [中止]、[再試行]、および [無視] の3つのボタンを表示。
YesNoCancel 3  [はい]、[いいえ]、および [キャンセル] の3つのボタンを表示。
YesNo 4  [はい] ボタンと [いいえ] ボタンを表示。
RetryCancel 5  [再試行] ボタンと [キャンセル] ボタンを表示。

 このほかに、表示するアイコンなどを設定することもできる。ヘルプで調べてみよう。

 MsgBoxを関数として使い、受け取った結果は、押されたボタンの種類の値である。
 MsgBoxResult列挙体、定数または整数値を使うことができる。列挙体は、"MsgBoxResult.OK"のような形式で使う。それ以外は、単独で使う。

列挙体 定数 整数値 説明
OK vbOK 1  [OK] ボタン
Cancel vbCancel 2  [キャンセル] ボタン
Abort vbAbort 3  [中止] ボタン
Retry vbRetry 4  [再試行] ボタン
Ignore vbIgnore 5  [無視] ボタン
Yes vbYes 6  [はい] ボタン
No vbNo 7  [いいえ] ボタン


 back next 
 §7 アニメーション(2)2 Copyright©2008 Hiroshi Masuda 

 

 

inserted by FC2 system