一。文本框用于显示,修改和录入数据,常用属性见下表:
属性 | 功能 |
passwordchar | 口令字符.此属性赋值后,文本框中的内容均用此内容显示,但实际内容并没有变化 |
readonly | 是否只读.设置为只读后,文本框只能显示value属性中的内容,不能修改 |
value | 存放值.设计时可用此属性赋初值.初值类型决定文本框的数据类型 |
inputmark | 控制输入数据的格式和显示方式.参数及意义如下:控制输入的:X-任意字符 9-数字和+-号 #-数字和+-号和空格 ; 控制显示的:$-货币符号 $$-浮点货币符号 *-数值左边显示"*" .-指示小数点位置 ,-小数点左边的数字用","分隔 |
controlsource | 指定与文本框绑定的数据源 |
selstart | 文本框中被选择的文本的起始位置 |
sellength | 文本框中被选择的文本的字符数 |
seltext | 文本框中被选择的文本 |
selectentry | 当文本框得到焦点时是否自动选中文本框中的内容 |
format | 指定Value属性数据输入输出数据格式。参数及意义如下: |
例如,如果表单中一个文本框用于显示和输入日期型数据,则应该将其value属性设为{};如果一个文本框用于输入5个任意字符,应该将其inputmark属性设为XXXXX;如果一个文本框用于输入6位的数字,则应该将其inputmark属性设为999999.
Visual FoxPro基础教程完整版
二。文本框常用的事件:见下表:
事件 | 发生时间 |
when | 在得到焦点之前发生 |
gotlocus | 在得到焦点时发生 |
valid | 在失去焦点前发生 |
lostfocus | 在失去焦点时发生 |
例如,可在when事件的代码中保存文本框中原来的内容,可在valid事件代码中验证文本框中输入内容的正确性。valid事件中的return返回。F.,则文本框不会失去焦点。表单释放时,忽略return值的影响。
三。例1:在主程序main.prg中先调用表单login.scx进行用户登录,如果用户名和密码正确,则调用表单xggz.scx(该表单的制作见5-2的例一).
1.制作login.scx并设置属性:
表单login.scx包含下列对象:标签label1~label2作提示信息;文本框text1用于输入用户名,文本框text1用于输入密码,"确定"命令按钮用于提交登录;"取消"命令按钮用于取消登录,界面如图18所示。
依照界面设置命令按钮和标签的caption属性,并将表单的caption属性设为"用户登录",autocenter属性设为。T.;将文本框text2的passwordchar属性设为"*".将表单保存在e:myvfp.
2.编写代码:
*表单的activate事件代码:
this.text2.enabled=.f. &&输入用户名后才能输入密码
this.text1.setfocus &&表单启动后光标先定位到用户名文本框
*"用户名"文本框text1的确良keypress事件代码:
if nKeycode=13.and.!empty(this.value) &&输入完用户名按回车键即进入输密码
thisform.text2.enabled=.t.
thisform.text2.setfocus
endif
*命令按钮"确定"的click事件代码:
name=thisform.text1.value
yes=.f. &&全局变量yes在主程序中定义,用于传回登录信息。如果合法用户登录,将yes置为。t.
do case
case name="guest".and.alltrim(thisform.text2.value)=="123456"
yes=.t. &&第一个用户为guest,密码是123456
case name="human".and.alltrim(thisform.text2.value)=="45678"
yes=.t. &&第二个用户为human,密码是45678
endcase
if yes &&此条件为真,说明提交的是正确的用户名和密码
messagebox("登录成功")
else
messagebox("用户名或密码不正确")
endif
thisform.release
clear events
*"取消"按钮的click事件代码:
thisform.release
clear events
*主程序main.prg的代码:
public yes &&用于接收登录信息的正确性
set default to e:myvfp
do form login
read events
if yes &&此条件为真,说明登录的是合法用户
do form xggz
read events
endif
cancel
Visual FoxPro基础教程完整版