Jump to content

Problema com Tooltip


Chamuanza
Go to solution Solved by ribeiro55,

Recommended Posts

Um Bem Aja a Todos

Tenho num Form um StatusStrip1 com cinco (5) ToolStripStatusLabel5

Queria colocar em duas (2) ToolStripStatusLabel notas através do código abaixo indicado mas apresenta este erro:

Error 1 Value of type 'System.Windows.Forms.ToolStripStatusLabel' cannot be converted to 'System.Windows.Forms.Control'.

//
 Private Sub ToolStripStatusLabel3_MouseHover(sender As Object, e As EventArgs) Handles ToolStripStatusLabel3.MouseHover
    If ToolStripStatusLabel3.Enabled = True Then
	    ToolTip1.SetToolTip(ToolStripStatusLabel3, "Clique Aqui para alterar o Valor da Aposta")
    Else
	    Exit Sub
    End If
   End Sub

Como posso dar a volta a esta situação

Testei com um projecto novo para testar e dá o mesmo erro

Link to comment
Share on other sites

  • Solution

Olá CRLF,

ToolStripItems são casos especiais que não herdam do Forms.Control.

Como tal, as tooltips devem ser geridas com membros do container (esse sim, herda do Forms.Control).

O primeiro passo é passar True para o ShowItemToolTips, propriedade da StatusStrip, que por defeito está a False.

Esta propriedade diz à StatusStrip que deverá implementar uma ToolTip para cada ToolStripItem que tenha ToolTipText, o que nos leva ao segundo passo, que é definir directamente na ToolStripStatus a tooltip a mostrar, através da propriedade ToolTipText.

Deixo-te abaixo um exemplo, ligeiramente adaptado para funcionar com múltiplos disparos de eventos.

    Private Sub ToolStripStatusLabel3_MouseHover(sender As Object, e As EventArgs) Handles ToolStripStatusLabel3.MouseHover
       Dim tssl As ToolStripStatusLabel = sender

       If tssl.Enabled = True Then
           tssl.ToolTipText = "Clique Aqui para alterar o Valor da Aposta"
       End If

   End Sub

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       StatusStrip1.ShowItemToolTips = True
   End Sub

Tem em conta que esta tua solução de definir a tooltip no MouseHover não é ideal e que pode resultar em não mostrar a tooltip sem que tenhas de tirar o rato e voltar a colocar.

Sugiro que definas a ToolTipText dos labels no mesmo sítio onde os pões activos e inactivos, tendo o cuidado de passar String.Empty à ToolTipText quando não queres mostrar.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.