copyright 1999 - 2014 by heinz prelle - hannover  - lenbachstraße 42 - www.visual-basic5.de | impressum
Beispiel: VB .Net - ToolTip zuordnen wenn sich die Maus in einem gezeichneten Kreis befindet
'
Option Explicit On
Option Strict On

Imports System.Drawing.Drawing2D

Public Class Form1

    Public _graphicsregion As Region
    Public HitTest As Boolean

    Public Property GraphicsRegion() As Region
        Get
            Return _graphicsregion
        End Get
        Set(ByVal value As Region)
            _graphicsregion = value
        End Set
    End Property

    Private Sub InitGraphicsPath _
            ( _
                ByVal x As Single, _
                ByVal y As Single, _
                ByVal Width As Single, _
                ByVal Height As Single _
            )
        Dim rgn As Region
        Using gp As GraphicsPath = New GraphicsPath
            With gp
                .AddEllipse(x, y, Width, Height)
            End With
            rgn = New Region(gp)
        End Using
        GraphicsRegion = rgn
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles MyBase.Load
        With Me
            .Text = "ToolTip zuordnen wenn sich die Maus in einem gezeichneten Kreis befindet"
            With .ToolTip1
                .AutoPopDelay = 250
                .InitialDelay = 1000
                .ReshowDelay = 250
                .ShowAlways = True
            End With
            .DoubleBuffered = True
            .CenterToScreen()
        End With
        InitGraphicsPath(Me.ClientSize.Width \ 2 - 50, Me.ClientSize.Height \ 2 - 50, 100, 100)
    End Sub

    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
            Handles Me.MouseMove
        If Not GraphicsRegion.IsVisible(e.X, e.Y) Then
            If HitTest Then
                HitTest = False
                Me.Invalidate()
            End If
            Return
        End If
        If Not HitTest Then
            HitTest = True
            Me.Invalidate()
        End If
    End Sub

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) _
            Handles Me.Paint
        e.Graphics.FillRegion(Brushes.Red, GraphicsRegion)
        If HitTest Then ToolTip1.Show("The mouse is in the circle.", Me, 100, 100, 1000)
    End Sub

End Class
Sourcecode Visual Basic