vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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
Re: ToolStripMenuItems custom tooltip 
Autor: Novatlan
Datum: 03.09.22 15:48

Hi!

Danke! Das hat mich auf die richtige Idee gebracht... falls jemand anderes das gleiche Problemchen hat, Code untenstehend für ein custom control, basierend auf dem normalen ToolStripMenuItem, das einen neuen Tooltip-Parameter hat, sowie einen CustomToolTipText Parameter für den anzuzeigenden Text. Das Tooltip und der Text können im Designer zugewiesen werden, das neue Control dann einfach statt des Standard-ToolStripMenuItem verwenden.

Public Class cls_toolStripMenuItem
    Inherits ToolStripMenuItem
 
    Private _mouseOverPoint As Point
    Private ReadOnly _timer As Timer
    Public WithEvents Tooltip As ToolTip
    Public ToolTipInterval As Integer = 4000
    Public CustomToolTipText As String = ""
 
    Protected Overrides Sub OnMouseMove(ByVal mea As MouseEventArgs)
        MyBase.OnMouseMove(mea)
 
        If Math.Abs(_mouseOverPoint.X - mea.X) > _
          SystemInformation.MouseHoverSize.Width OrElse Math.Abs( _
          _mouseOverPoint.Y - mea.Y) > _
          SystemInformation.MouseHoverSize.Height Then
            _mouseOverPoint = mea.Location
            If Tooltip IsNot Nothing Then Tooltip.Hide(Me.Parent)
            _timer.Stop()
                _timer.Start()
            End If
    End Sub
 
    Protected Overrides Sub OnClick(ByVal e As EventArgs)
        MyBase.OnClick(e)
        If Tooltip IsNot Nothing Then Tooltip.Hide(Me.Parent)
    End Sub
 
    Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
        MyBase.OnMouseUp(e)
    End Sub
 
    Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
        MyBase.OnMouseLeave(e)
        _timer.Stop()
        If Tooltip IsNot Nothing Then Tooltip.Hide(Me.Parent)
        _mouseOverPoint = New Point(-50, -50)
    End Sub
 
    Private Sub timer_Tick(ByVal sender As Object, ByVal e As EventArgs)
        _timer.Stop()
        Try
            If Not Equals(CustomToolTipText, Nothing) AndAlso _
              CustomToolTipText.Length > 0 Then
                Dim tipPoint As Point = New Point(Me.Bounds.Location.X + 50, _
                Me.Bounds.Location.Y + 50)
                tooltip.Show(CustomToolTipText, Me.Parent, tipPoint, _
                ToolTipInterval)
            End If
        Catch
            'Just catching if there's no mouseoverpoint.
        End Try
    End Sub
 
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        MyBase.Dispose(disposing)
 
        If disposing Then
            _timer.Dispose()
            tooltip.Dispose()
        End If
    End Sub
 
    Public Sub New()
        MyBase.New()
        _timer = New Timer With {
            .Enabled = False,
            .Interval = SystemInformation.MouseHoverTime
        }
        AddHandler _timer.Tick, New EventHandler(AddressOf timer_Tick)
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ToolStripMenuItems custom tooltip485Novatlan31.08.22 16:24
Re: ToolStripMenuItems custom tooltip247Manfred X31.08.22 23:41
Re: ToolStripMenuItems custom tooltip254Novatlan03.09.22 15:48

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