我想在窗体里加个右键菜单的功能,比如开始,重来,结束,我在论坛里看到用的是MOUSE的BUTTON=2的方法来调MENU,我吧VB反复检查了都没有制作菜单的功能啊(还是菜单本身是个窗体)....那个BUTTON=2可以实现我的功能吗?那个菜单该怎么弄啊...
高手指点下吗....

解决方案 »

  1.   

    是可以的.
    VB实现窗口的弹出式菜单 在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控件,按动鼠标器右键就可弹出下拉菜单,实现复制、剪切功能。
      

  2.   

    目标是TEXT啊,但它有杂项啊,比如系统本身的一些别的功能也在菜单中出现,
    即使你在编辑时没有加入这个MENU,我只想要复制,粘贴,别的都不要,但系统好像
    硬给似的,你那是这样的吗?可以解决吗?有没以TEXT为目标的吗?就窗体不行吗?...
      

  3.   

    太死板了,Text控件在制作时就加了右键菜单,为什么非用右键?左键就不行,有的鼠标有中键,中键就不行
    你用左键试试,很好
    Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
    PopupMenu mnuFile
    End If
    End Sub