Link to home
Start Free TrialLog in
Avatar of Nolanc
Nolanc

asked on

VB.NET ToolTip Not Showing


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
Avatar of Dirk Haest
Dirk Haest
Flag of Belgium image

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
He can Put Your Code (@Dhaest)  also in his FrmMyForm Load Event
Avatar of Nolanc
Nolanc

ASKER

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
did you try in from load event?
Avatar of Nolanc

ASKER


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
Where do you put your tooltip?

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

ASKER

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.
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
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
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

Avatar of Nolanc

ASKER


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
 
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
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

Avatar of Nolanc

ASKER

Hi itoutou

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

Thanks
sorry i forgot
 Private blnActive As Boolean
Avatar of Nolanc

ASKER

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
ASKER CERTIFIED SOLUTION
Avatar of John (Yiannis) Toutountzoglou
John (Yiannis) Toutountzoglou
Flag of Greece image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Nolanc

ASKER

Thanks for the ideas.