Label control - suppress GetFocus

P

Peter Davey

G'day all,
I have some embedded command buttons in a worksheet. I want to emulate
'tool tip' functionality. I've been able to do this using the MouseMove
event so that text is diplayed in a label control when the mouse is
moved over one of the buttons. To suppress the tool tip when the mouse
moves off a button, I've position a single label control behind the
buttons and use the MouseMove event for that control to hide the tool
tip label.

This all works beautifully BUT if I click on the background label it
takes the focus and hides the buttons even though the Enabled property
is set to false and backstyle is set to transparent.

Does anybody know how I can stop it taking the focus? I'm doing this at
home at the moment on Excel97 but it will be used at work in Excel2K.

Any replies will be greatly appreciated.

cheers
peterDavey
 
P

Patrick Molloy

that's a nice solution & works well.

I added this to the sheet code
Private Sub Label2_Click()
Label2.SendToBack
End Sub

now, as soon as you move off the label behind the button, the button
re-appears
 
P

Peter Davey

NickHK said:
Peter,
How do you give the focus to a label ?
Do you mean text box ?

NickHk
Nick,
It's an embedded VBA label control that has MouseMove GetFocus and
LostFocus events. When I create it the default name is Label1
cheers
peterD
 
N

NickHK

Peter,
I missed the "worksheet" bit.

NickHK

Peter Davey said:
Nick,
It's an embedded VBA label control that has MouseMove GetFocus and
LostFocus events. When I create it the default name is Label1
cheers
peterD
 
P

Peter Davey

Patrick said:
that's a nice solution & works well.

I added this to the sheet code
Private Sub Label2_Click()
Label2.SendToBack
End Sub

now, as soon as you move off the label behind the button, the button
re-appears

:
Thanks Patrick but I was hoping to find a solution to supress the
background label entirely as it might confuse the hell out of the users
when the buttons disappear. You may be interested in the full code below.

I've tried another solution that does away with the need for a
background label - it checks to see if the mouse is positioned in a
pre-defined margin (say 5 pixels in from the edge all round) within the
button in which case the tooltip is hidden otherwise displayed. The
problem I found was that it was unreliable if I moved the mouse too quickly.

cheers
peterD

Dim strCurrentControl As String

Private Sub cmdCopyToClipboard_MouseMove(ByVal Button As Integer, ByVal
Shift As Integer, ByVal X As Single, ByVal Y As Single)

If strCurrentControl <> "cmdCopyToClipboard" Then
strCurrentControl = "cmdCopyToClipboard"
With lblToolTip
.Caption = "Copy to clipboard"
.Visible = True
End With
End If

End Sub

Private Sub lblBackground_Click()
lblBackground.Visible = False
End Sub

Private Sub lblBackground_MouseMove(ByVal Button As Integer, ByVal Shift
As Integer, ByVal X As Single, ByVal Y As Single)

If strCurrentControl <> "lblBackground" Then
strCurrentControl = "lblBackground"
With lblToolTip
.Caption = ""
.Visible = False
End With
End If

End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top