|
在Windows95、Windows98或NT的風(fēng)格中,有按動鼠標(biāo)器右鍵彈出下拉菜單的操作,在VB執(zhí)行環(huán)境下,有一些控件本身具有彈下拉菜單的功能,如TexTbox控件等,但大多數(shù)編輯類控件以及窗體本身卻沒有此功能,要在窗口中任意位置實現(xiàn)PopUpMenu(彈出式菜單),可借助VB的菜單工具來實現(xiàn)。 首先,打開VB的“工具”菜單條,利用“菜單編輯器”為窗體生成一個菜單: 標(biāo)題(Caption) 菜單條名(Name) 編輯 menuEdit ……復(fù)制 mnuCopy ……剪切 munCut 其次,將生成的menuEdit菜單設(shè)置為不可視。 Private Sub Form_Load() Me.menuEdit.Visibe=False ′menuEdit菜單設(shè)置為不可視 End Sub 然后,利用MouseDown事件實現(xiàn)任意位置彈出PopUpMenu,如下例: 本例中以RichTexBox控件為例,在其上面實現(xiàn)復(fù)制、剪切功能。 1.復(fù)制功能的實現(xiàn)。 Private Sub MnuCopy_Click() Clipboar.Clear′將剪貼板清空 ′將RichTexBox控件上選擇上的內(nèi)容復(fù)制到剪貼板 Clipboard.SetTextRichTexBox1.SelText End Sub 2.剪切功能的實現(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事件中實現(xiàn)任意位置彈出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 ′判斷是否按動鼠標(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控件,按動鼠標(biāo)器右鍵就可彈出下拉菜單,實現(xiàn)復(fù)制、剪切功能。 |
|
|