在Windows95、Windows98或NT的風格中,有單擊鼠標右鍵彈出下拉菜單的操作。在VB執行環境中,有些控件本身具有播放下拉菜單的功能,如文本框控件,但大多數編輯控件和表單本身不具有此功能。要在窗口的任何地方實現彈出菜單,可以借助VB菜單工具來實現。
首先,打開VB的“工具”菜單欄,使用“菜單編輯器”為表單生成壹個菜單:
標題(標題)菜單欄名稱(名稱)
編輯菜單編輯
.....復制mnuCopy。
.....切芒卡特。
其次,將生成的menuEdit菜單設置為不可見。
私有子窗體_Load()
Me.menuEdit.Visibe=False
菜單編輯菜單設置為不可見。
末端接頭
然後,使用MouseDown事件在任意位置彈出彈出菜單,如下例所示:
本例以RichTexBox控件為例,在其上實現了復制和剪切功能。
1.復制功能的實現。
私有Sub MnuCopy_Click()
剪貼板。清除清空剪貼板。
將RichTexBox控件上的選定內容復制到剪貼板。
剪貼板。SetTextRichTexBox1。SelText
末端接頭
2.切割功能的實現。
私有Sub MnuCut_Click()
剪貼板。清除清空剪貼板。
將RichTextBox控件上的選定內容復制到剪貼板
剪貼板。SetTextRichBox1。SelText
刪除RichTexBox控件上的選定內容。
SendKeys〃{DELETE}〃,True
末端接頭
3.在RichTexBox控件的MouseDown事件中的任意位置彈出彈出菜單。
OPrivate Sub richtexbox 1 _ MouseDown(Button為整數,Shift為整數,x為單精度,Y為單精度)
“Dim MnuFile AS Menu”聲明了菜單類型的變量。
設置munFile=Me。“菜單編輯”將菜單編輯分配給菜單變量。
如果Button=2,則判斷是否按下鼠標右鍵。
判斷RichTexBox控件上的選定內容是否存在,並決定是否可以復制和剪切菜單欄。
if Len(RichTexBox。text = 0或Len(RichTexBox。SelText = 0那麽
MnuCopy。Enabled = Flase復制菜單欄不可操作。
NmuCut。“Enabled=False”切割菜單欄不可操作。
NmuCopy。“啟用=真”復制菜單欄是可操作的。
NmuCut。“啟用=真”切割菜單欄是可操作的。
如果…就會結束
彈出菜單mnuFile彈出菜單。
如果…就會結束
末端接頭
這樣在VB執行環境下,操作表單上的RichTexBox控件,按鼠標右鍵彈出下拉菜單,實現復制和剪切功能。