当用户右键单击工作表文本框而非ActiveX时,我希望能够捕获右键单击事件。
我知道可以轻松完成用户形式文本框,这不是我之后的事情。
在工作表事件Worksheet_BeforeRightClick
中,我有以下内容:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
mRightClick.RightClickOnMoMList rngTarget:=Target, boolCancel:=Cancel
End Sub
然而,当我右键单击文本框时它甚至不输入它(但同一工作表的单元格确实有效)。我怀疑这是由于Target
参数是一个范围。
是否有办法让该事件陷阱右键单击文本框等形状?
答案 0 :(得分:2)
我刚刚这样做了:
- 打开Excel并进入设计模式
- 在工作表中添加了一个文本框
- 双击文本框,将我带到该控件的Change事件
- 我选择了MouseUp事件
你所追求的是按钮= 2表示右键(左键是1)。
因此...
Private Sub TextBox1_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
If Button = 1 Then
MsgBox "Left-click"
ElseIf Button = 2 Then
MsgBox "Right-click"
End If
End Sub