/// 実習E8 コントロール(ピクチャボックス) | プログラミング実習 |
プロジェクト名 実習E8画像の切換え1
説明
ボタンをクリックすると画像が変わる。
デザイン
フォームのプロパティ
Font.Size = 9 Size = 260, 120
ピクチャボックス
SizeMode = AutoSize
Image = right1.gif、right2.gif
コード(プログラム)
Public Class Form1 (正しく動作しない。)
Private Sub btnKirikae_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnKirikae.Click
Dim flag As Integer
If flag = 0 Then
flag = 1
picGazou.Image = My.Resources.right2
Else
flag = 0
picGazou.Image = My.Resources.right1
End If
End Sub
End Class
テスト@
ボタンをクリックすると口をあけた画像に変わるが、それ以降、変わらない。
解説
変数flagの値を目印にしている。
flag=0のとき、 flag=1に、画像をright2にする。
flag=0以外のとき、flag=0に、画像をright1にする。 予定であった。
ボタンをクリックするごとに、btnKirikae_Clickが呼び出され、Dim命令で変数flagが新しく用意され0で初期化される。End Subで変数flagは破棄される。よって、ボタンをクリックするごとに変数flagは0で初期化され、0以外になることがない。
変更
変数をStatic命令で宣言すると、End Subで変数flagは破棄されない。
Dim flag As Integer ⇒ Static flag As Integer
テストA
ボタンをクリックすると画像が変わる。
キーワード
Static (解説参照↑)
プロジェクト名 実習E8画像の切換え1
説明
ボタンの変わりにタイマーを使って、設定時間で画像が変わる。
デザイン
変更なし(ボタンbtnKirikaeは不要になる。)
タイマー(Timer1)のプロパティ(オブジェクトは、フォーム上に表示されない。)
Enabled = Treu、 Interval = 500 (0.5秒)
コード(プログラム)
Public Class Form1
Private Sub btnKirikae_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnKirikae.Click
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Timer1.Tick
@ flag As Integer
If flag = 0 Then
flag = A
picGazou.Image = My.Resources.right2
Else
flag = B
picGazou.Image = My.Resources.right1
End If
End Sub
End Class
テスト
設定時間で画像が変わる。
memo たくさんの画像を画像を切り替える。(例g1→g2→g3→g4→g1の順に切り換える場合)
Static flag As Integer
If flag = 0 Then
flag = 1
picGa.Image = My.Resources.g2
ElseIf flag = 1 Then
flag = 2
picGa.Image = My.Resources.g3
ElseIf flag = 2 Then
flag = 3
picGa.Image = My.Resources.g4
ElseIf flag = 3 Then
flag = 0
picGa.Image = My.Resources.g1
End If
g1はflag=0、g2はflag=1、g3はflag=2、g4はflag=3、というように対応させる。
/// 実習E8 コントロール(ピクチャボックス) | Copyright©2014 Hiroshi Masuda |