/// 実習E8 コントロール(ピクチャボックス) プログラミング実習
 back next 

プロジェクト名  実習E8画像の切換え1

説明

 ボタンをクリックすると画像が変わる。

デザイン

フォームのプロパティ
 Font.Size = 9  Size = 260, 120

ピクチャボックス
 SizeMode = AutoSize
 Image = right1.gifright2.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

解答欄(英数字は半角で入力すること。余分な空白は入れないこと)
  @   A   B
   解答を入力し、[解答チェック]ボタンをクリックする。正解は   、不正解は   で表示される。

テスト

 設定時間で画像が変わる。

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、というように対応させる。


 back next 
/// 実習E8 コントロール(ピクチャボックス) Copyright©2014 Hiroshi Masuda 

 

 

inserted by FC2 system