微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题VB实现窗口的弹出式菜单
栏目软件世界
作者王晓东
发布1999年第29期13版
  在Windows95、Windows98或NT的风格中,有按动鼠标器右键弹出下拉菜单的操作,在VB执行环境下,有一些控件本身具有弹下拉菜单的功能,如TexTbox控件等,但大多数编辑类控件以及窗体本身却没有此功能,要在窗口中任意位置实现PopUpMenu(弹出式菜单),可借助VB的菜单工具来实现。
  首先,打开VB的“工具”菜单条,利用“菜单编辑器”为窗体生成一个菜单:
  标题(Caption)  菜单条名(Name)
  编辑  menuEdit
  ……复制  mnuCopy
  ……剪切  munCut
  其次,将生成的menuEdit菜单设置为不可视。
  Private Sub Form_Load()
  Me.menuEdit.Visibe=False  
  'menuEdit菜单设置为不可视
   End Sub
  然后,利用MouseDown事件实现任意位置弹出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事件中实现任意位置弹出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 '弹出PopUpMenu。
  End If
  End Sub
  这样,在VB执行环境中,操作窗体上的RichTexBox控件,按动鼠标器右键就可弹出下拉菜单,实现复制、剪切功能。