ここではアプリケーションの例を示します。これは、ToolStripを使用したフォームと、各ボタンに画像が追加された2つのボタンです。各ボタンのキープロパティはCheckOnClick=True
で、ボタンを押したままにします。
ToolStripのラジオボタンのような機能がないため、ItemClicked
イベントで処理した他のToolStripButtonsを自分自身で「チェックを外す」必要があります。
Public Class Form1
Private _ActiveImage As Image = Nothing
Private Class ImagePoint
Public Location As Point
Public Image As Image
Public Sub New(ByVal image As Image, ByVal location As Point)
Me.Image = image
Me.Location = location
End Sub
End Class
Private _Images As New List(Of ImagePoint)
Public Sub New()
InitializeComponent()
Me.DoubleBuffered = True
End Sub
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
For Each imageItem As ImagePoint In _Images
e.Graphics.DrawImage(imageItem.Image, imageItem.Location)
Next
End Sub
Private Sub ToolStrip1_ItemClicked(ByVal sender As Object, ByVal e As ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked
For Each toolButton As ToolStripButton In ToolStrip1.Items.OfType(Of ToolStripButton)()
If toolButton.CheckOnClick Then
If e.ClickedItem.Equals(toolButton) Then
_ActiveImage = e.ClickedItem.Image
Else
toolButton.Checked = False
End If
End If
Next
End Sub
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseDown
If _ActiveImage IsNot Nothing AndAlso e.Button = MouseButtons.Left Then
_Images.Add(New ImagePoint(_ActiveImage, e.Location))
Me.Invalidate()
End If
End Sub
End Class
この実施例は、単にどの位置に配置し、ペイントイベントがちょうどリストをループして画像を描画した画像を保持する単純なクラスを使用します。
画像を削除する場合は、画像をペイントする前にe.Graphics.Clear(Color.White)
に電話する必要があります。
Javascript!= Java – colithium