プログラムの構造

コードエディタで以下のコードを入力する。

  
Public Class Form1
    Dim x As Integer
    ' 画面描画時の処理
    Private Sub Form1_Paint(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim g As Graphics
        g = e.Graphics
        Dim pen1 As System.Drawing.Pen
        pen1 = New System.Drawing.Pen( _
            Color.FromArgb(&HFF000000))
        g.DrawRectangle(pen1, x, 50, 20, 20)
    End Sub
    ' プログラム開始時の処理
    Private Sub Form1_Load( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs _
      ) Handles MyBase.Load
        ' picturebox p1を準備する
        Dim p1 As PictureBox
        p1 = New PictureBox
        p1.Dock = DockStyle.Fill
        p1.BackColor = Color.White
        Me.Controls.Add(p1)
        ' timer t1を準備する
        AddHandler p1.Paint, AddressOf Form1_Paint
        Dim Timer1 As Timer
        Timer1 = New Timer
        Timer1.Interval = 10
        Timer1.Enabled = True
        AddHandler Timer1.Tick, AddressOf Me.Timer1_Tick

        'xをスタート時に0にリセットする
        x = 0

    End Sub
    ' 1 tick (100ms)毎の処理
    Private Sub Timer1_Tick( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs _
      )
        x = x + 1
        If x > 300 Then
            x = 0
        End If
        Me.Refresh()
    End Sub
End Class


このプログラムの重要な部分をまず見てみよう。

Public Class Form1
 
    Dim x As Integer

変数はここで宣言する

    Private Sub Form1_Paint( _
        ByVal sender As Object, _
        ByVal e As System.Windows. _
        Forms.PaintEventArgs)
        Dim g As Graphics
        g = e.Graphics
        Dim pen1 As System.Drawing.Pen
 
        pen1 = New System.Drawing.Pen( _
            Color.FromArgb(&HFF000000))
pen1の色を
黒に設定
        g.DrawRectangle(pen1, x, 50, 20, 20)

長方形を描画

    End Sub
 
    Private Sub Form1_Load( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs _
      ) Handles MyBase.Load
 
        ' picturebox p1を準備する
        Dim p1 As PictureBox
        p1 = New PictureBox
        p1.Dock = DockStyle.Fill
        p1.BackColor = Color.White
        Me.Controls.Add(p1)
        ' timer t1を準備する
        AddHandler p1.Paint, _
          AddressOf Form1_Paint
        Dim Timer1 As Timer
        Timer1 = New Timer
        Timer1.Interval = 10
        Timer1.Enabled = True
        AddHandler Timer1.Tick, _
          AddressOf Me.Timer1_Tick
 
        x = 0
xを0でクリア
    End Sub
 
    Private Sub Timer1_Tick( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs _
      )    
 
        x = x + 1
        If x > 300 Then
            x = 0
        End If

xを1増加
300を超えたら0に戻す

        Me.Refresh()
画面を描画
    End Sub
 
End Class
 

 

このプログラムを、コピペではなく自分で作成する場合は、以下のように書いていく。

(1) フォーム部分をダブルクリックする。

(2)黄色の部分を入力する。この部分は変更せずコピペする

(3)水色の部分をプログラムする。これらの部分は自分の目的に合わせて変更する。