程序员人生 网站导航

VFP基础教程 5.4 文本框(textbox)控件

栏目:FoxPro时间:2013-11-08 09:41:52

    一。文本框用于显示,修改和录入数据,常用属性见下表:

属性
功能
passwordchar口令字符.此属性赋值后,文本框中的内容均用此内容显示,但实际内容并没有变化
readonly是否只读.设置为只读后,文本框只能显示value属性中的内容,不能修改
value存放值.设计时可用此属性赋初值.初值类型决定文本框的数据类型
inputmark控制输入数据的格式和显示方式.参数及意义如下:控制输入的:X-任意字符 9-数字和+-号 #-数字和+-号和空格 ;
控制显示的:$-货币符号 $$-浮点货币符号 *-数值左边显示"*"
.-指示小数点位置 ,-小数点左边的数字用","分隔
controlsource指定与文本框绑定的数据源
selstart文本框中被选择的文本的起始位置
sellength文本框中被选择的文本的字符数
seltext文本框中被选择的文本
selectentry当文本框得到焦点时是否自动选中文本框中的内容
format

指定Value属性数据输入输出数据格式。参数及意义如下:
A-字符(非空格标点)
D-当前日期格式
E-BRITISH 日期数据
K-光标移入选择整个内容
L-数值数据加前导0
M-InputMask属性中可放入输入选项表
T-去头尾空格
!-转换为大写字母
^-用科学计数法显示数据
$-显示货币符
R-屏蔽字符不放入控制源中

    例如,如果表单中一个文本框用于显示和输入日期型数据,则应该将其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基础教程完整版
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐