In the userform's code module, use the following event for your text box:
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As
Integer, _
ByVal X As Single, ByVal Y As Single)
If Button = xlSecondaryButton Then
TheProc CTL:=Me.TextBox1
End If
End Sub
Then, in regular code moudle, use
Sub TheProc(CTL As MSForms.Control)
If TypeOf CTL Is MSForms.TextBox Then
MsgBox "Control Is A Text Box: " & CTL.Name & vbCrLf & _
CTL.Text
Else
Debug.Print "NOT A TEXT BOX: " & CTL.Name
End If
End Sub
--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)
"Dale Fye" wrote in message
...
I want to popup a shortcut menu whenever a user right clicks in a textbox
on
my userform. I initially tried to use:
ctrl = Screen.Activecontrol 'this is how I would do it in Access
but this did not work. Since I have several userforms, and I want this
subroutine to work for each of them, I tried declaring the control in the
subroutines declaration statement:
Public Sub EditMenuPopup(ctrl as Textbox)
Unfortunately, with this approach, I encountered two problems. When I
called
the sub using:
Call EditMenuPopup(me.txt_SomeControl)
I got an error because it was trying to pass the value of the control, not
the actual control. When I tried:
Call EditMenuPopup(me.ActiveControl)
I got a type mismatch because it believes that the active control is a
multipage control, not the textbox that actually has the focus.
In some forms, the textbox might be on a multipage (tab) control, in
others
it will just be on the main form, and this would probably work.
I thought about passing the userform and control names but don't know how
to
refer to refer to the form with its name. In Access I would use:
Forms(strFormName)
Any ideas how to work approach this issue would be greatly appreciated
Dale
--
Don''t forget to rate the post if it was helpful!
email address is invalid
Please reply to newsgroup only.