vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Hinweis zu einem Zeichnungselement anzeigen 
Autor: Manfred X
Datum: 21.04.17 00:21

Hallo!

Was hat dieses Thema mit einem Listview zu tun ???
Tooltips beziehen sich auf Controls.

Hinweise zu einem Zeichnungselement anzeigen ...
Public Class frmDrawToolTip
 
    'Kreisparameter
    Private Structure CircleParams
        Property center As Point
        Property radius As UShort
        Property color As Drawing.Color
    End Structure
 
    'Liste der Kreisparameter
    Dim circles As New List(Of CircleParams)
 
    Dim WithEvents pb As New PictureBox With _
        {.Parent = Me, .Size = New Size(400, 400)}
 
    'Label für Tipps
    Dim lbl As New Label With _
        {.Parent = Me, .AutoSize = False, .Visible = False, _
         .Width = 150, .Height = 20, .BackColor = Color.LightYellow, _
         .BorderStyle = BorderStyle.FixedSingle, _
         .Font = New Font("Arial", 8)}
 
 
    Private Sub frmDrawToolTip_Load _
        (sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Me.Size = New Size(450, 450)
 
        'Einge Kreis-Parameter
        With circles
           .Add(New CircleParams With _
             {.center = New Point(100, 120), .radius = 30, .color = Color.Red})
           .Add(New CircleParams With _
             {.center = New Point(200, 180), .radius = 60, .color = _
             Color.Green})
           .Add(New CircleParams With _
             {.center = New Point(280, 220), .radius = 60, .color = Color.Blue})
        End With
    End Sub
 
 
    Private Sub pb_MouseMove(sender As Object, _
            e As System.Windows.Forms.MouseEventArgs) Handles pb.MouseMove
 
        Dim mpos As New Point(e.X, e.Y)
 
        Dim c As Integer = FindCircle(mpos)
        If c = -1 Then lbl.Visible = False : Exit Sub
 
        With circles(c)
            'Listenindex und Kreismittelpunkt anzeigen 
            lbl.Text = c.ToString & ".) Center: " & _
            .center.X.ToString & " | " & .center.Y.ToString
 
            lbl.Location = .center 'Position des Tipp-Labels
            lbl.Visible = True
            lbl.BringToFront()
        End With
 
    End Sub
 
 
    Private Sub bp_Paint(sender As Object, _
        e As System.Windows.Forms.PaintEventArgs) Handles pb.Paint
 
        For i As Integer = 0 To circles.Count - 1
            With circles(i)
                Using pn As New Pen(.color, 2)
                    e.Graphics.DrawEllipse(pn, GetCircleRect(circles(i)))
                End Using
            End With
        Next i
    End Sub
 
 
    Private Function GetCircleRect(cp As CircleParams) As Rectangle
 
        'Zeichenfläche (Quadrat) aus den Kreisparametern bestimmen
        With cp
            Return New Rectangle _
                (.center.X - .radius, .center.Y - .radius, _
                 .radius * 2, .radius * 2)
        End With
    End Function
 
 
    Private Function FindCircle(Pos As Point) As Integer
 
        For i As Integer = 0 To circles.Count - 1
            With circles(i)
                'Berechnung der Distanzen zwischen Mausposition und 
                'den Kreismittelpunkten
                Dim distance As Double = Math.Sqrt( _
                    (Pos.X - .center.X) ^ 2 + _
                    (Pos.Y - .center.Y) ^ 2)
 
                'erster gefundener Kreis in der Liste
                If distance <= .radius Then Return i
            End With
        Next i
        Return -1
    End Function
 
End Class


Beitrag wurde zuletzt am 21.04.17 um 00:27:51 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ToolTip von Listview1.191Marty**20.04.17 21:33
Hinweis zu einem Zeichnungselement anzeigen491Manfred X21.04.17 00:21

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel