VB实现窗口的弹出式菜单 导读:在Windows95、Windows98或NT的风格中,有按动鼠标器右键弹出下拉菜单的操作,在VB执行环境下,有一些控件本身具有弹下拉菜单的功能,如TexTbox控件等,但大多数编辑类控件以及窗体本身却没有此功能,要在窗口中任意位置实现PopUpMenu(弹出式菜单),可借助VB的菜单工具来实现。0 d' S9 @" Y+ O0 L( B) V' E' j5 x& q
首先,打开VB的“工具”菜单条,利用“菜单编辑器”为窗体生成一个菜单:
! v/ D5 D% y+ e, Q 标题(Caption) 菜单条名(Name)) w1 Q& c% l* z3 T7 Z9 j1 `1 @
编辑 menuEdit9 {/ \: A! ~3 _# k' f
……复制 mnuCopy5 d. H. W ]0 N- E- s& Z4 A
……剪切 munCut
( u8 p b; ?* @% J q3 @" z# J8 D 其次,将生成的menuEdit菜单设置为不可视。
* O( {! D7 W+ j9 x# }2 @. A Private Sub Form_Load()
& I( |- X" S9 l z% T1 F4 Z Me.menuEdit.Visibe=False
, I5 w- {/ T' a! g( w. e( d% Y/ E1 ` ′menuEdit菜单设置为不可视* `8 d0 d. x) a$ |8 J9 t1 z
End Sub& L, s" |, P& H4 I4 I; `' j
然后,利用MouseDown事件实现任意位置弹出PopUpMenu,如下例:1 x+ o$ h( @: V3 o# o: ~3 Q, x
本例中以RichTexBox控件为例,在其上面实现复制、剪切功能。- t+ e$ ~% W1 f- J
1.复制功能的实现。
$ s" C& i# T% L) F4 I- b3 M- O Private Sub MnuCopy_Click()3 ]/ C) P/ X: X/ F8 m- F' _+ g
Clipboar.Clear′将剪贴板清空
2 g6 O* E) z/ p3 q3 |) T; ]! W2 | ′将RichTexBox控件上选择上的内容复制到剪贴板
+ K8 R9 z# v. p9 [0 z1 h Clipboard.SetTextRichTexBox1.SelText1 f1 j& f* I) O( b. V
End Sub
- ~0 A8 i8 ]3 x& Z$ h 2.剪切功能的实现。7 O6 a; q9 `7 d6 Y5 Q: t
Private Sub MnuCut_Click()/ d0 i% t( h# l& L
Clipboard.Clear ′将剪贴板清空0 Q% S& R! u$ i# ~
′将RichTextBox控件上选择了的内容复制到剪贴板, E `1 f% z6 X+ A9 P) ^( A9 r
Clipboard.SetTextRichBox1.SelText
/ L) m9 T8 m% Z X G# } ′将RichTexBox控件上选择了的内容删除
8 Z3 O7 D0 V3 u7 F' F% e SendKeys″{DELETE}″,True: P6 a( P3 R4 B( K* n
End Sub |