建一个菜单 vbFile 子菜单vbRight:
(右键点击窗体 就会d出 vbFile下的几个子菜单了)
Private Sub Form_Load()
vbFileVisible = False
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case Button
Case 1
Print "点击了左键"
Case 2
Print "点击了右键"
PopupMenu vbFile
End Select
End Sub
----------------------------
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
PopupMenu color, 4 Or 0
End If
End Sub
是对的。 建议改成MouseUp事件,因为你看正常的d出菜单 都是鼠标键d起来出现的
才发现 你是想要把系统的右键d出式菜单屏蔽吧
如下代码即可(把相应代码改成你想要的)
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
PopupMenu color, 0 Or 4'左键所触发的内容
End If
If Button = 2 Then'右键所触发的内容
Text1Enabled = False
Text1Enabled = True
PopupMenu color, 0 Or 4
End If
End Sub打开VB,点工具--菜单编辑器,先建一个菜单,如:
文件(file )--打开(open)
--保存(save)
--关闭(close)
将主菜单“文件”项设为不可见,这样在窗体上就看不见该菜单了。
画一个命令按扭,双击打开,输入以下代码:
PopupMenu file
单击按扭时会出现上面的子菜单。首先建立新窗体,然后使用菜单编辑器创建好菜单SS和他的3个子菜单,SS的name属性为MnuSS,创建时去掉SS的可见属性,使其不可见。
菜单编辑器创建菜单的过程不好用代码表达,楼主自己创建。下面再窗体中输入如下代码,实现右键d出菜单的功能。
Option Explicit
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu MnuSS
End If
End Sub这个是d出菜单,菜单在窗体上不显示,单击右键时d出,所以需要将所有菜单做成子菜单。
1、先在VB里打开菜单编辑器(在窗体显示的情况下,在工具菜单里点“菜单编辑器"
2、新建菜单:(1)先做一个总菜单项,标题中填写”d出",名称中填写mymenu,该菜单项是不显示的,用来d出。(2)做如图子菜单,标题中填写菜单中显示的内容,比如:排列图标,刷新等等,名称内输入你自定义的名称,比如:排列图标的名称mnu_pailie,名称用来在编写代码时识别该菜单。横线在VB中标题内输入减号(-),名称也需要输入。(3)下级菜单(如排列图标有下级菜单),用向右的箭头调整
只要是标题和名称输入好了,就是合法的。其它不符合要求可以慢慢修改,不影响你条试验。
3、编写代码:
Private Sub Form_Load()
mymenuVisible = False‘mymenu是要d出总菜单的名称,在窗体上禁止显示,当然,你也可以让它显示
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)’窗体的鼠标按键抬起事件,当鼠标按键向上抬起时发生
If Button = vbRightButton Then‘button参数是按键,如果抬起的是鼠标右键时
MePopupMenu mymenu’d出mymenu
End If
End Sub用鼠标右键单击时 TextBox 控件上,显示其默认d出式菜单。Visual Basic 不具有属性或直接将禁用此功能的任何其他内置的机制。但是,该控件的 有效 属性设置为 False 防止菜单显示,尽管这使用户可以看到该控件被禁用。
一个解决方法是使用 Windows LockWindowUpdate 应用程序编程接口 (API) 结合 可用 属性。LockWindowUpdate 函数禁用或重新-启用指定窗口中的绘图。该 *** 作完成后该控件是重新启用,和 LockWindowUpdate API 调用第二次以恢复该控件的绘图。 创建示例项目的步骤在 Visual Basic 中开始一个新的标准 EXE 项目。默认情况下创建 Form1。向 Form1 中添加 文本框 控件。从 工具 菜单中单击 菜单编辑器 并创建一个名为 Form1 上的 mnuPopUp 的菜单。清除 可见 复选框,并添加项,如下所示:标题: 名称
文件: mnuPopup
新建: mnuOne
打开: MnuTwo 下面的代码添加到 Form1 的代码窗口: Private Declare Function LockWindowUpdate Lib "user32" _
(ByVal hwndLock As Long) As Long
Private Sub mnuOne_Click()
Text1Text = "Menu One was clicked"
End Sub
Private Sub mnuTwo_Click()
Text1Text = "Menu two was clicked"
End Sub
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
If Button = vbRightButton Then
' Avoid the 'disabled' gray text by locking updates
LockWindowUpdate Text1hWnd
' A disabled TextBox will not display a context menu
Text1Enabled = False
' Give the previous line time to complete
DoEvents
' Display our own context menu
PopupMenu mnuPopup
' Enable the control again
Text1Enabled = True
' Unlock updates
LockWindowUpdate 0&
End If
End Sub
保存并运行该项目。用鼠标右键单击文本 1。显示自定义的菜单。不显示标准的编辑菜单。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)