a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 76|回复: 0

[Visual FoxPro] 二级考试VF辅导:粘贴VFP顶层表单

[复制链接]
发表于 2012-7-31 22:17:54 | 显示全部楼层 |阅读模式
  VFP以其强大的面向对象功能,方便易用的界面设计等为广大的微机用户提供了极大的方便,在它的表单中继承了Windows的复制和粘贴功能,从而提高了工作效率,方便了用户。然而当你将表单设置为顶层表单并独立运行于Windows下,就会发现表单中复制粘贴功能失效,给实际工作造成极大的不便,从而使编制的软件达不到专业水准。/ G% ]  \4 ]) D4 p& I
  通过认真分析与实践,笔者认为,造成这一问题的原因是微软设计VFP时,只考虑了位于系统选单下的表单的复制和粘贴情况,即位于系统选单下的表单可使用复制及粘贴热键,而处于Windows下的表单完全脱离了系统选单的控制,因此复制及粘贴热键失效。
4 y9 Q) |% c' A/ c6 [, ?  解决的办法是可在表单的控件(本文示例为文本框)中,为KeyPress Event编写如下事件处理程序,该事件处理程序首先将选择内容复制到Windows剪贴板上,然后再将剪贴板上的内容添加到控件中。
  [+ t% L. Q, B. D4 ?! I% w4 U  KeyPress Event" ?+ c7 B. S6 ^2 L: p- x, Q7 L
  LPARAMETERS nKeyCode, nShiftAltCtrl
, U+ j  ]" [  |# D' O0 |  if nkeycode=38 b7 d) b. P5 v/ p% [! h
  && CTRL+C 复制
1 u3 Y3 V$ k6 s; O% D  —cliptext=this.seltext
' o& \* q( p/ W) l  endif9 \3 V5 h* F2 v9 W! a8 |
  if nkeycode=229 S, r! s" b% k
  && CTRL+V 粘贴
# D( r1 Y/ ^) J  do case" B) b/ ~5 R! e; k( }
  case this.selstart=0
/ p  S3 f6 m& }; Q- U  this.value=—cliptext+this.value
% B2 G6 {  z' C/ p  case this.selstart〉=1 and this.selstart〈=len(this.value)% l, Z; d5 }: d& j/ Q
  this.value=subs(this.value,1,this.selstart)+
4 e. A7 U) ~/ I. C' s2 I9 }  —cliptext+subs(this.value,this.selstart+1)9 ], n1 }! z( F# l$ m7 \/ s
  endcase
. v7 `+ X6 f$ @: q% ^2 j  endif
" c3 x1 y% j& U& u- R  thisform.grid1.column1.setfocus()
# S! x$ |$ l8 b! C  sele recetem
' U- s1 `. d8 ?2 ~; X0 @  if not eof()
# f3 ~0 b' K. z' Q: }8 L) `5 O- i  skip0 g% ?2 s+ e7 k+ L& B: }- c
  endif9 z; n6 \& b* ?6 Z' h* f% Z
  thisform.refresh
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-18 12:05 , Processed in 0.197343 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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