We help IT Professionals succeed at work.

VB.NET ToolTip Not Showing

2,905 Views
Last Modified: 2013-11-26

Hi

I have an MDI Application and I show another form from a dropdown menu as follows:

   Dim MyForm As New FrmMyForm
   MyForm.MDIParent = Me
   MyForm.Show

FrmMyForm has a ToolTip control in its Component Tray. I use the appropriate ToolTip Property of a Button Control and insert the necessary text representing the ToolTip. When I run the application and hover the mouse over the Button control, the Tooltip does not display.

Any idea what I can be doing wrong.

Thanks
Comment
Watch Question

Dirk HaestProject manager
CERTIFIED EXPERT

Commented:
Just Drag a Tooltip from the toolbox on you windows form and write the following code in code behind file.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.MouseHover
        ToolTip1.SetToolTip(Button1, "sometext")

    End Sub
John (Yiannis) ToutountzoglouInstructor Multiengine Pilot

Commented:
He can Put Your Code (@Dhaest)  also in his FrmMyForm Load Event

Author

Commented:
Hi Dhaest

I am not sure what you mean by the "Code Behind File". However I used your code but instead of the Button_Click Event I used the Button_MouseHover Event. It works, but the ToolTip just flashes and dies. In other words there is no delay. I have the AutoPopDelay set to 5000. Even if I increase it, the Tooltip just flashes by (like a flash of lightning).
Any further ideas.
Thanks
John (Yiannis) ToutountzoglouInstructor Multiengine Pilot

Commented:
did you try in from load event?

Author

Commented:

Hi

I tried this code in the form Load Event as you suggested (because I thought it would be much less work for me).

ToolTip1.SetToolTip(Button1, "sometext")

There is no evidence at all of the ToolTip when I hover the Mouse over the Button.

Thanks
John (Yiannis) ToutountzoglouInstructor Multiengine Pilot

Commented:
Where do you put your tooltip?

you should add a tooltip also in your FrmMyForm design to have a tooltip text in your button

Author

Commented:
Hi itoutou

I think I have mentioned that I dragged a ToolTip control from the ToolBox onto FrmMyForm and it sits in the Component Tray of FrmMyForm. Lets call it MyToolTips. I hope I am responding correctly to your last comment.
Thanks.
John (Yiannis) ToutountzoglouInstructor Multiengine Pilot

Commented:
yes you are...
 Private Sub FrmMyForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.ToolTip1.SetToolTip(Button1, "i am a tooltipMessage")
End sub
John (Yiannis) ToutountzoglouInstructor Multiengine Pilot

Commented:
just for testing purposes try :
Private Sub FrmMyForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 Me.ToolTip1.IsBalloon = True  
 Me.ToolTip1.SetToolTip(Button1, "i am a tooltipMessage")
End sub
Top Expert 2010

Commented:
You might want to just confirm that you can start a new project add a tooltip control and a button to the form. See if the tooltip appears...
If you see the tooltip in the simple project you just made it's something else in your project affecting the tooltip behavior.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ToolTip1.SetToolTip(Me.Button1, "My Tooltiptext")
    End Sub

Open in new window

Author

Commented:

Hi

In my initial problem statement, I provided the following code:

   Dim MyForm As New FrmMyForm
   MyForm.MDIParent = Me   (A)
   MyForm.Show

It is the line of code in (A) that is causing the ToolTip Control in FrmMyForm to misbehave. When I comment that line, all is well. However, when FrmMyForm is displayed and I click on any Menu Item of the MDI Form, then FrmMyForm is minimized . So I corrected an instance of misbehaviour and created another unique instance of misbehaviour.

Do you have any ideas or shall I close this question and create another.

Thanks
 
John (Yiannis) ToutountzoglouInstructor Multiengine Pilot

Commented:
ususally the mdi parent use this :
 Dim ChildForm As New yourformname
        ' Make it a child of this MDI form before showing it.
        ChildForm.MdiParent = Me

        m_ChildFormNumber += 1
        ChildForm.Text = "Window " & m_ChildFormNumber

        ChildForm.Show()

with one you will not have a problem
John (Yiannis) ToutountzoglouInstructor Multiengine Pilot

Commented:
it is another subject   but just keep this function when you are using mdi parent

 Private Function IsOpen(ByVal nameForm As String) As Boolean
        Dim childfrm As Form
        Dim strName As String
        Dim intLastIndex As Integer

        For Each childfrm In Me.MdiChildren
            strName = childfrm.GetType.ToString
            intLastIndex = strName.LastIndexOf(".")
            strName = Mid(strName, intLastIndex + 2, Len(strName) - intLastIndex)
            If LCase(strName) = LCase(nameForm) Then
                childfrm.BringToFront()
                Return True
            End If
        Next
        Return False
    End Function


Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs) Handles NewToolStripMenuItem.Click, NewToolStripButton.Click
        If blnActive = IsOpen("YourFormName") Then
            Dim MyForm As New YoutFormName
            MyForm.WindowState = FormWindowState.Normal
            MyForm.MdiParent = Me
            
            MyForm.StartPosition = FormStartPosition.CenterScreen
            MyForm.Show()
         End if
End Sub

Open in new window

Author

Commented:
Hi itoutou

I have tried this code, but m_ChildFormNumber is being underlined (presumably not defined).

Thanks
John (Yiannis) ToutountzoglouInstructor Multiengine Pilot

Commented:
sorry i forgot
 Private blnActive As Boolean

Author

Commented:
Hi itoutou

I have copied your code into my MDIForm but am battling to understand it. I would like to try it though.

Can you please explain the following to me:

1. How is the Sub Procedure activated. I notice that "Handles" references more than one event. The First being the Menu Item I click. I am not sure what the other event is all about because I have to substiitute something for it viz. NewToolStripButton.Click

I would love to know how it works before I try it.

Thanks
Instructor Multiengine Pilot
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION

Author

Commented:
Thanks for the ideas.
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.