事前準備は前回と同じです。(こちら)
今回は、描画した四角形を毎回消去します。
前回と同じように、クリック2回で四角形を描画します。
Public Class Form1
Private ClickCount As Integer
Private rect(0) As Rectangle
Private StX As Integer
Private StY As Integer
Private linePen As Pen = New Pen(Color.Green, 1)
Private Sub PictureBox_MouseClick(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox1.MouseClick
If ClickCount = 0 Then
ClickCount = 1
ReDim rect(1)
StX = e.X : StY = e.Y
Else
ClickCount = 0
ReDim rect(0)
End If
PictureBox1.Invalidate()
End Sub
Private Sub PictureBox_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox1.MouseMove
If ClickCount = 1 Then
Dim x As Integer = Math.Min(StX, e.X)
Dim y As Integer = Math.Min(StY, e.Y)
Dim wid As Integer = Math.Abs(StX – e.X)
Dim hei As Integer = Math.Abs(StY – e.Y)
rect(1) = New Rectangle(x, y, wid, hei)
PictureBox1.Invalidate()
End If
End Sub
Private Sub Picture_Box(ByVal sender As Object, ByVal e As PaintEventArgs) Handles PictureBox1.Paint
For i As Integer = 1 To UBound(rect)
e.Graphics.DrawRectangle(linePen, rect(i))
Next
End Sub
End Class
今回は、四角形を毎回消します。
矩形範囲を指定するときに使用する感じだと思います。
また、描画結果はマウスムーブ中に
四角形が描画されるだけですので、割愛します。
システム開発のためのVB.NETプログラミング関係一覧に戻る