Uitstel van tooltip

Status
Niet open voor verdere reacties.

famlam

Gebruiker
Lid geworden
15 okt 2008
Berichten
416
ToolTip en Timer: Uitstel van tooltip

VRAAG OPGELOST! BEDANKT ALLEMAAL

-------------------------------

Hoe kan ik instellen dat een tooltip eerst 1500 ms wacht, voordat hij zich vertoont???

Ik heb nu
Code:
Private Sub Radio1_Muisover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Radio1.MouseHover
        UitlegToolTip.Show("Tekst", Me, Me.Left, Me.Top, 3000)
    End Sub
 
Laatst bewerkt:
Code:
UitlegToolTip.Show("Tekst", Me, Me.Left, Me.Top, [B]1500[/B])

of tooltip.initialdelay = 1500
 
Code:
UitlegToolTip.Show("Tekst", Me, Me.Left, Me.Top, [B]1500[/B])

of tooltip.initialdelay = 1500

1e optie: die geeft aan hoe lang de tooltip zichtbaar moet zijn, niet de tijd voordat hij zichtbaar wordt

tweede optie: werkt niet... heb nu staan
Code:
Private Sub Radio1_Muisover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Radio1.MouseHover
        UitlegToolTip.InitialDelay = 1500
        UitlegToolTip.Show("Tekst", Me, Me.Left, Me.Top, 3000)
    End Sub
 
heb nu
Code:
Private Sub Tooltips(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseHover
        Dim ToolTip1 As New ToolTip
        ToolTip1.InitialDelay = 1500
        ToolTip1.Active = True
        ToolTip1.SetToolTip(Radio1, "TekstA")
        ToolTip1.SetToolTip(Radio2, "TekstB")
End Sub
Het probleem is nu dat hij het niet altijd meteen toont!
Als ik het form opstart, en de muis op een radio houdt, dan toont hij niet altijd de tekst, ongeacht hoe lang ik de muis erop houdt.
Weet iemand wat ik hier fout doe?
 
Ja sorry hoor, maar je spreek jezelf nu gewoon tegen.

Hoe kan ik instellen dat een tooltip eerst 1500 ms wacht, voordat hij zich vertoont???

nou , InitialDelay = 1500

maar nu vraag je :

Het probleem is nu dat hij het niet altijd meteen toont!

InitialDelay = 1

(InitialDelay = 0 is standaardwaarde.)
 
Laatst bewerkt:
Ja sorry hoor, maar je spreek jezelf nu gewoon tegen.



nou , InitialDelay = 1500

maar nu vraag je :



InitialDelay = 1

(InitialDelay = 0 is helemaal niet laten zien.)

Ik heb de code gewijzigd... Eerst was het probleem dat het niet wachtte totdat het komt, en nu (met de nieuwe code) laat het zich niet altijd zien... (en met meteen bedoelde ik op het juiste moment. Mijn fout)
 
Ik heb eventjes een miniprogrammaatje gemaakt waarin je het kunt zien. Op alledrie de buttons zit een tooltip.

De volledige broncode is:
Code:
Public Class Form1
    Private Sub Tooltips(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseHover
        Dim ToolTip1 As New ToolTip
        ToolTip1.InitialDelay = 1250
        ToolTip1.Active = True
        ToolTip1.SetToolTip(Button1, "tooltip van button1")
        ToolTip1.SetToolTip(Button2, "tooltip van button2")
        ToolTip1.SetToolTip(Button3, "tooltip van button3")
    End Sub
End Class

Voer het programmaatje maar eens uit! Ongeveer 1 op de 10 keren toont hij de tooltips niet of pas na 20-40 seconde. (gewoon als hij het wel doet het programma afsluiten en weer opnieuw opstarten, totdat hij de tooltips eens niet doet...
En als je dit ook geconstateerd heb, dan weet je waarschijnlijk mijn probleem :) ...
 
Laatst bewerkt:
Ik heb eventjes een miniprogrammaatje gemaakt waarin je het kunt zien. Op alledrie de buttons zit een tooltip.

De volledige broncode is:
Code:
Public Class Form1
    Private Sub Tooltips(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseHover
        Dim ToolTip1 As New ToolTip
        ToolTip1.InitialDelay = 1250
        ToolTip1.Active = True
        ToolTip1.SetToolTip(Button1, "tooltip van button1")
        ToolTip1.SetToolTip(Button2, "tooltip van button2")
        ToolTip1.SetToolTip(Button3, "tooltip van button3")
    End Sub
End Class

Voer het programmaatje maar eens uit! Ongeveer 1 op de 10 keren toont hij de tooltips niet of pas na 20-40 seconde. (gewoon als hij het wel doet het programma afsluiten en weer opnieuw opstarten, totdat hij de tooltips eens niet doet...
En als je dit ook geconstateerd heb, dan weet je waarschijnlijk mijn probleem :) ...

Iemand een idee?
(sorry dat ik zo aandring, maar ik heb een programma, en dat wil ik pas releasen als dit opgelost is. Voor de rest is het programma al klaar...)
 
Is er echt geen oplossing voor?

Jawel hoor:

hier komt die

Zorg dat je een Timer hebt en een tooltip:
zet de eigenschap "Interval'van je timer op "1500"
door een handle zoals label1_mouseover moet je de timer activeren met:
Code:
Timer1.Enabled = true

zet dan in Timer1_Tick dit
Code:
Tooltip1.show()
Timer1.Enabled = False

dit laat iedere keer als de muis over Label1 heen komt de Timer activeren, de timer wacht dan 1500ms voordat hij de tooltip laat zien en zichzelf uitzet
 
Dank je. Voor de mensen die toevallig de definitieve code willen hebben:
Code:
Public Class Form1
    Private WithEvents Timer1 As New Timer
    Private WithEvents ToolTip1 As New ToolTip

    Private Sub Timer1_tick(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Timer1.Tick
        ToolTip1.Active = True
        ToolTip1.SetToolTip(Button1, "tooltip van button1")
        ToolTip1.SetToolTip(Button2, "tooltip van button2")
        ToolTip1.SetToolTip(Button3, "tooltip van button3")
        Timer1.Enabled = False
    End Sub

    Private Sub Button1_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button3.MouseEnter, Button2.MouseEnter, Button1.MouseEnter
        ToolTip1.Active = True
        Timer1.Enabled = True
        Timer1.Interval = 1500'duur tot tooltip
    End Sub

    Private Sub Button1_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button3.MouseLeave, Button2.MouseLeave, Button1.MouseLeave
        ToolTip1.Active = False
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles MyBase.Load
        Timer1.Enabled = True
    End Sub
End Class
 
Dank je. Voor de mensen die toevallig de definitieve code willen hebben:
Code:
Public Class Form1
    Private WithEvents Timer1 As New Timer
    Private WithEvents ToolTip1 As New ToolTip

    Private Sub Timer1_tick(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Timer1.Tick
        ToolTip1.Active = True
        ToolTip1.SetToolTip(Button1, "tooltip van button1")
        ToolTip1.SetToolTip(Button2, "tooltip van button2")
        ToolTip1.SetToolTip(Button3, "tooltip van button3")
        Timer1.Enabled = False
    End Sub

    Private Sub Button1_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button3.MouseEnter, Button2.MouseEnter, Button1.MouseEnter
        ToolTip1.Active = True
        Timer1.Enabled = True
        Timer1.Interval = 1500'duur tot tooltip
    End Sub

    Private Sub Button1_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button3.MouseLeave, Button2.MouseLeave, Button1.MouseLeave
        ToolTip1.Active = False
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles MyBase.Load
        Timer1.Enabled = True
    End Sub
End Class

Graag gedaan!
 
Maar toch vreemd dat de tooltip dit 'niet' uitzich zelf schijnt te kunnen;)
 
Maar toch vreemd dat de tooltip dit 'niet' uitzich zelf schijnt te kunnen;)

Ik weet het ook niet. Ik heb (jammer genoeg) ongeveer twee uur geleden de bijlage verwijderd waar je het kon zien. Maar het maakt niet uit, deze code is weliswaar iets langer, maar werkt wel, dus... no problem!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan