Se pueden recrear haciendo un UserControl. Pero siempre es posible usar un PictureBox todos sus eventos que consideres necesarios y sobretodo System.Drawing.Graphics ayudaría mucho.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúImports System.Drawing.Drawing2D
Public Class Form1
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Dim A As New GraphicsPath
Dim B As New GraphicsPath
'Las coordenadas y tamaños son solo de ejemplo'
A.AddRectangle(New Rectangle(10, 50, 100, 200))
B.AddRectangle(New Rectangle(30, 69, 200, 100))
'Se dibujan los rectangulos de ejemplo'
e.Graphics.FillPath(Brushes.Green, A)
e.Graphics.FillPath(Brushes.Red, B)
'Se guardan las regiones de los rectangulos'
Dim RegionA As New Region(A)
Dim RegionB As New Region(B)
'Se guarda en RegionA la intercepción que existe entre A y B'
RegionA.Intersect(RegionB)
'Se pinta la region intercepta'
e.Graphics.FillRegion(Brushes.Blue, RegionA)
Dim Punto As PointF = RegionA.GetBounds(e.Graphics).Location
'Si la region no esta vacia, entonces estamos en presencia'
'de una intercepcion, ya que hemos logrado pintarla'
If Not RegionA.IsEmpty(e.Graphics) Then
e.Graphics.DrawString("Intercepción", Me.Font, Brushes.Red, Punto.X, Punto.Y)
End If
End Sub
End Class