a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 71|回复: 1

[Visual Basic] 2011年计算机等考二级VB辅导知识技巧总结(9)

[复制链接]
发表于 2012-7-31 22:10:12 | 显示全部楼层 |阅读模式
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
回复

使用道具 举报

 楼主| 发表于 2012-7-31 22:10:13 | 显示全部楼层

2011年计算机等考二级VB辅导知识技巧总结(9)

 3.在RichTexBox控件的MouseDown事件中实现任意位置弹出PopUPMenu。  OPrivate Sub RichTexBox1_MouseDown(Button As Integer,Shift As Integer,x As Single,Y As Single)
+ |; z, s9 I9 l/ ], |4 o! `) r1 h4 M  Dim MnuFile AS Menu ′声明一个菜单类型的变量9 O' K; {  Y1 S
  Set munFile=Me.MenuEdit ′将MenuEdit赋给菜单变量; [. q. K. C" j
  if Button=2 Then ′判断是否按动鼠标器右键
+ u6 V0 N4 o* [: Q' M3 P" R% h  ′判断RichTexBox控件上选择了的内容是否存在,决定复制、剪切菜单条是否可操作。
  k8 s) i$ m5 }: o( z4 `  If Len(RichTexBox.Text)=0 Or Len(RichTexBox.SelText)=0 Then0 [# `) i  S) J9 M6 u6 K" }
  mnuCopy.Enabled=Flase ′复制菜单条不可操作。( m+ {1 l" Z3 Q
  nmuCut.Enabled=False ′剪切菜单条不可操作。2 S5 T9 Y% z2 o: b) z
  nmuCopy.Enabled=True ′复制菜单条可操作。5 D. L; c* q% i; d% U: s4 X
  nmuCut.Enabled=True ′剪切菜单条可操作。; Y$ P+ W4 f. ]! s% o, @
  End
4 q$ }, z4 R2 c7 t  PopupMenu mnuFile ′弹出PopUpMenu。( M1 s4 p- P/ S$ O
  End If5 ?# u9 }3 J/ Q: p+ x' t+ m1 D
  End Sub5 i8 a' E1 h* I) k  X6 |0 d
  这样,在VB执行环境中,操作窗体上的RichTexBox控件,按动鼠标器右键就可弹出下拉菜单,实现复制、剪切功能。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-18 09:34 , Processed in 0.221980 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表