在Windows95、
Windows98或NT的風(fēng)格中,有按動(dòng)
鼠標(biāo)器右鍵彈出下拉菜單的操作,在VB執(zhí)行環(huán)境下,有一些控件本身具有彈下拉菜單的功能,如TexTbox控件等,但大多數(shù)編輯類控件以及窗體本身卻沒有此功能,要在窗口中任意位置實(shí)現(xiàn)PopUpMenu(彈出式菜單),可借助VB的菜單工具來實(shí)現(xiàn)。
首先,打開VB的“工具”菜
單條,利用“菜單編輯器”為窗體生成一個(gè)菜單:
標(biāo)題(Caption) 菜單條名(Name)
編輯 menuEdit
……復(fù)制 mnuCopy
……剪切 munCut
其次,將生成的menuEdit菜單設(shè)置為不可視。
Private Sub Form_Load()
Me.menuEdit.Visibe=False
′menuEdit菜單設(shè)置為不可視
End Sub
然后,利用MouseDown事件實(shí)現(xiàn)任意位置彈出PopUpMenu,如下例:
本例中以RichTexBox控件為例,在其上面實(shí)現(xiàn)復(fù)制、剪切功能。
1.復(fù)制功能的實(shí)現(xiàn)。
Private Sub MnuCopy_Click()
Clipboar.Clear′將剪貼板清空
′將RichTexBox控件上選擇上的內(nèi)容復(fù)制到剪貼板
Clipboard.SetTextRichTexBox1.SelText
End Sub
2.剪切功能的實(shí)現(xiàn)。
Private Sub MnuCut_Click()
Clipboard.Clear ′將剪貼板清空
′將RichTextBox控件上選擇了的內(nèi)容復(fù)制到剪貼板
Clipboard.SetTextRichBox1.SelText
′將RichTexBox控件上選擇了的內(nèi)容刪除
SendKeys″{DELETE}″,True
End Sub
3.在RichTexBox控件的MouseDown事件中實(shí)現(xiàn)任意位置彈出PopUPMenu。
OPrivate Sub RichTexBox1_MouseDown(Button As Integer,Shift As Integer,x As Single,Y As Single)
Dim MnuFile AS Menu ′聲明一個(gè)菜單類型的變量
Set munFile=Me.MenuEdit ′將MenuEdit賦給菜單變量
if Button=2 Then ′判斷是否按動(dòng)鼠標(biāo)器右鍵
′判斷RichTexBox控件上選擇了的內(nèi)容是否存在,決定復(fù)制、剪切菜單條是否可操作。
If Len(RichTexBox.Text)=0 Or Len(RichTexBox.SelText)=0 Then
mnuCopy.Enabled=Flase ′復(fù)制菜單條不可操作。
nmuCut.Enabled=False ′剪切菜單條不可操作。
nmuCopy.Enabled=True ′復(fù)制菜單條可操作。
nmuCut.Enabled=True ′剪切菜單條可操作。
End
PopupMenu mnuFile ′彈出PopUpMenu。
End If
End Sub
這樣,在VB執(zhí)行環(huán)境中,操作窗體上的RichTexBox控件,按動(dòng)鼠標(biāo)器右鍵就可彈出下拉菜單,實(shí)現(xiàn)復(fù)制、剪切功能。