在Windows95、Windows98或NT的风格中,有按动鼠标器右键d出下拉菜单的 *** 作,在VB执行环境下,有一些控件本身具有d下拉菜单的功能,如TexTbox控件等,但大多数编辑类控件以及窗体本身却没有此功能,要在窗口中任意位置实现PopUpMenu(d出式菜单),可借助VB的菜单工具来实现。
首先,打开VB的“工具”菜单条,利用“菜单编辑器”为窗体生成一个菜单:
标题(Caption) 菜单条名(Name)
编辑 menuEdit
……复制 mnuCopy
……剪切 munCut
其次,将生成的menuEdit菜单设置为不可视。
Private Sub Form_Load()
Me.menuEdit.Visibe=False
′menuEdit菜单设置为不可视
End Sub
然后,利用MouseDown事件实现任意位置d出PopUpMenu,如下例:
本例中以RichTexBox控件为例,在其上面实现复制、剪切功能。
1.复制功能的实现。
Private Sub MnuCopy_Click()
Clipboar.Clear′将剪贴板清空
′将RichTexBox控件上选择上的内容复制到剪贴板
Clipboard.SetTextRichTexBox1.SelText
End Sub
2.剪切功能的实现。
Private Sub MnuCut_Click()
Clipboard.Clear ′将剪贴板清空
′将RichTextBox控件上选择了的内容复制到剪贴板
Clipboard.SetTextRichBox1.SelText
′将RichTexBox控件上选择了的内容删除
SendKeys〃{DELETE}〃,True
End Sub
3.在RichTexBox控件的MouseDown事件中实现任意位置d出PopUPMenu。
OPrivate Sub RichTexBox1_MouseDown(Button As Integer,Shift As Integer,x As Single,Y As Single)
Dim MnuFile AS Menu ′声明一个菜单类型的变量
Set munFile=Me.MenuEdit ′将MenuEdit赋给菜单变量
if Button=2 Then ′判断是否按动鼠标器右键
′判断RichTexBox控件上选择了的内容是否存在,决定复制、剪切菜单条是否可 *** 作。
If Len(RichTexBox.Text)=0 Or Len(RichTexBox.SelText)=0 Then
mnuCopy.Enabled=Flase ′复制菜单条不可 *** 作。
nmuCut.Enabled=False ′剪切菜单条不可 *** 作。
nmuCopy.Enabled=True ′复制菜单条可 *** 作。
nmuCut.Enabled=True ′剪切菜单条可 *** 作。
End IF
PopupMenu mnuFile ′d出PopUpMenu。
End If
End Sub
这样,在VB执行环境中, *** 作窗体上的RichTexBox控件,按动鼠标器右键就可d出下拉菜单,实现复制、剪切功能。
你可以使用VBA编程实现添加只有一级菜单名称,具体步骤如下:1. 在VBA编辑器中,右键点击“工作表”或“标签”选择“插入”;
2. 运行语句CommandBars("Worksheet Menu Bar").Controls("功能").Controls("宏").Delete;
3. 用Add方法添加一级菜单,Add方法的参数的说明,可以参考MSDN中对应的API文档;
4. 添加完一级菜单以后,再使用Add方法添加子菜单;
5. 最后,在子菜单中添加宏。
新建工具栏实例Sub 新建工具栏()
Application.CommandBars.Add(Name:="我的工具栏").Visible = True '新建一个自定义工具栏,名为我的工具栏,并可见。
Application.CommandBars("我的工具栏").Controls.Add Type:=msoControlButton, ID:=3, Before:=1 '添加保存按钮,在第一个位置
Application.CommandBars("我的工具栏").Controls.Add Type:=msoControlButton, ID:=1849, Before:=2 '添加查找按钮,在第二个位置
Application.CommandBars("我的工具栏").Controls.Add Type:=msoControlButton, ID:=295, Before:=3 '添加插入单元格按钮
Application.CommandBars("我的工具栏").Controls.Add Type:=msoControlButton, ID:=395, Before:=4 '添加货币样式按钮
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)