
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工具箱里有ContextMenu(NET20以后名字有点变化,大概差不多),你加入窗体后就可以像编辑普通菜单那样编辑。
编辑好后,选中你要添加菜单的控件。属性窗口里有个ContextMenu属性,在里面选你刚才建立的ContextMenu打开VB,点工具--菜单编辑器,先建一个菜单,如:
文件(file
)--打开(open)
--保存(save)
--关闭(close)
将主菜单“文件”项设为不可见,这样在窗体上就看不见该菜单了。
画一个命令按扭,双击打开,输入以下代码:
PopupMenu
file
单击按扭时会出现上面的子菜单。用MouseUp事件里的
Button参数
1表示左键
2表示右键
建一个菜单
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
"点击了左键"
Case
2
"点击了右键"
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用鼠标右键单击时 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条)