a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 148|回复: 1

[Visual FoxPro] 2011年度计算机等级考试二级VFP基础教程(35)

[复制链接]
发表于 2012-7-31 22:17:54 | 显示全部楼层 |阅读模式
  5.4 文本框(textbox)控件$ e3 }4 i: U/ E
  一。文本框用于显示,修改和录入数据,常用属性见下表:
! W- K- h6 c0 H3 t6 I属性功能passwordchar口令字符.此属性赋值后,文本框中的内容均用此内容显示,但实际内容并没有变化readonly是否只读.设置为只读后,文本框只能显示value属性中的内容,不能修改value存放值.设计时可用此属性赋初值.初值类型决定文本框的数据类型inputmark控制输入数据的格式和显示方式.参数及意义如下:控制输入的:X-任意字符 9-数字和+-号 #-数字和+-号和空格 ;  w: z+ o' j* Q% k! B$ I
控制显示的:$-货币符号 $$-浮点货币符号 *-数值左边显示"*"
$ R# h9 ]1 s+ O: Z* k* d.-指示小数点位置 ,-小数点左边的数字用","分隔controlsource指定与文本框绑定的数据源selstart文本框中被选择的文本的起始位置sellength文本框中被选择的文本的字符数seltext文本框中被选择的文本selectentry当文本框得到焦点时是否自动选中文本框中的内容format指定Value属性数据输入输出数据格式。参数及意义如下:
. H. P& z7 H; mA-字符(非空格标点)/ e3 _" `  a& ?5 r+ f
D-当前日期格式
9 i. @% q* d( N& y$ R& GE-BRITISH 日期数据3 ?) r# c! G: H- J6 Y
K-光标移入选择整个内容, u" x/ z! k7 [+ o7 N8 L* `2 j% ]
L-数值数据加前导0' J9 V8 Y9 c$ d
M-InputMask属性中可放入输入选项表. a/ V4 a# `( a/ s0 o# U; P8 y+ U! n
T-去头尾空格
& z' ~. f9 m3 M) ~( M, n0 i) m!-转换为大写字母; y6 T% Q4 L9 W( G8 w* r
^-用科学计数法显示数据, u# ?* \3 u/ a/ d3 q# u
$-显示货币符
8 `$ j. X! ~; h7 IR-屏蔽字符不放入控制源中
9 z/ _! T; F2 U; d& i- Q3 N  例如,如果表单中一个文本框用于显示和输入日期型数据,则应该将其value属性设为{};如果一个文本框用于输入5个任意字符,应该将其inputmark属性设为XXXXX;如果一个文本框用于输入6位的数字,则应该将其inputmark属性设为999999.5 s% U2 G! b3 {- w7 M# l
  二。文本框常用的事件:见下表:: i6 ~% X; A/ I, p; S) W
事件发生时间when在得到焦点之前发生gotlocus在得到焦点时发生valid在失去焦点前发生lostfocus在失去焦点时发生  例如,可在when事件的代码中保存文本框中原来的内容,可在valid事件代码中验证文本框中输入内容的正确性。valid事件中的return返回。F.,则文本框不会失去焦点。表单释放时,忽略return值的影响。
- y: L5 N) m# s, ^$ i# s  三。例1:在主程序main.prg中先调用表单login.scx进行用户登录,如果用户名和密码正确,则调用表单xggz.scx(该表单的制作见5-2的例一).
9 ~( I0 ^+ u: p( E  1.制作login.scx并设置属性:! s/ c6 O/ G3 C, U. O
  表单login.scx包含下列对象:标签label1~label2作提示信息;文本框text1用于输入用户名,文本框text1用于输入密码,"确定"命令按钮用于提交登录;"取消"命令按钮用于取消登录,界面如图18所示。% ]9 d: N" v7 Q, z/ D( g3 n

- _1 C. e, r0 W; A6 ]5 _- N  依照界面设置命令按钮和标签的caption属性,并将表单的caption属性设为"用户登录",autocenter属性设为。T.;将文本框text2的passwordchar属性设为"*".将表单保存在e:\myvfp.
回复

使用道具 举报

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

2011年度计算机等级考试二级VFP基础教程(35)

2.编写代码:  *表单的activate事件代码:
0 n( q4 A1 ^( A7 Z' R  j* l  this.text2.enabled=.f. &&输入用户名后才能输入密码
, {9 f0 d: \" O" Q  this.text1.setfocus &&表单启动后光标先定位到用户名文本框
* ?; e8 z  m# h6 l4 Z1 R4 g* ^  *"用户名"文本框text1的确良keypress事件代码:
; [( n6 D1 {! a  if nKeycode=13.and.!empty(this.value) &&输入完用户名按回车键即进入输密码
! T' V' X8 _4 N- o; ~: l" j! U  thisform.text2.enabled=.t.
" a5 A7 E7 `- ]5 i  thisform.text2.setfocus$ v, S# }* {9 O7 T4 w0 {
  endif
/ O1 Q5 P" e  N  *命令按钮"确定"的click事件代码:
7 n8 `! N4 {( t& h7 Z  name=thisform.text1.value
7 \  j0 @, f) U7 ~/ i  yes=.f. &&全局变量yes在主程序中定义,用于传回登录信息。如果合法用户登录,将yes置为。t.
0 q# r$ T' {6 j4 q; z5 ~) N' v  do case- z# e. O1 N) w  o9 j
  case name="guest".and.alltrim(thisform.text2.value)=="123456"8 @0 ~5 r# p% u1 P- o4 b4 u
  yes=.t. &&第一个用户为guest,密码是123456( i5 B" c# v: _% F
  case name="human".and.alltrim(thisform.text2.value)=="45678"
; w! J  A" @4 O  yes=.t. &&第二个用户为human,密码是45678
! d7 s, D/ L6 E9 F' H: \. s0 s  endcase: B- X8 @, `# S5 ]( L& {8 J
  if yes &&此条件为真,说明提交的是正确的用户名和密码
7 ]# l. U& n/ B  messagebox("登录成功")
# V2 N% W' h# H, R5 `; [  ?, X* }* H  else
- P  X) ]0 i( b, H0 S  Q  messagebox("用户名或密码不正确")" s$ C) b$ L! T1 P. a
  endif6 c8 v# T  @" t$ u5 j$ h
  thisform.release; n0 _6 w  e4 @) i# u1 u- a9 C
  clear events
% V8 \" V) w/ Y  *"取消"按钮的click事件代码:
0 ]; ~: Z) C- D  thisform.release) k3 h  T3 u: z& A7 R) o5 b
  clear events
0 Y+ T# E3 U' R  *主程序main.prg的代码:3 J; f; ~8 p4 d& _+ v8 Q
  public yes &&用于接收登录信息的正确性
! X8 ~, i4 b$ E2 V- L/ k: |  set default to e:\myvfp
. A& J" y. P1 H9 V* p# V! M; [9 V  do form login( v: O/ C7 E) [+ B7 r- r# o/ q
  read events) G: }. x+ x* G; i2 e. H3 Y$ l" O
  if yes &&此条件为真,说明登录的是合法用户
; U8 E) }( C1 [" {' l  do form xggz+ J2 b) ?( u6 e1 i
  read events2 u2 d# |: j  s
  endif" P8 q3 G7 m5 F8 ~: Q
  cancel
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 03:47 , Processed in 0.264616 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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