一。文本框用于顯示,修改和錄入數(shù)據(jù),常用屬性見下表:
屬性 | 功能 |
passwordchar | 口令字符.此屬性賦值后,文本框中的內(nèi)容均用此內(nèi)容顯示,但實(shí)際內(nèi)容并沒有變化 |
readonly | 是否只讀.設(shè)置為只讀后,文本框只能顯示value屬性中的內(nèi)容,不能修改 |
value | 存放值.設(shè)計(jì)時(shí)可用此屬性賦初值.初值類型決定文本框的數(shù)據(jù)類型 |
inputmark | 控制輸入數(shù)據(jù)的格式和顯示方式.參數(shù)及意義如下:控制輸入的:X-任意字符 9-數(shù)字和+-號(hào) #-數(shù)字和+-號(hào)和空格 ; 控制顯示的:$-貨幣符號(hào) $$-浮點(diǎn)貨幣符號(hào) *-數(shù)值左邊顯示"*" .-指示小數(shù)點(diǎn)位置 ,-小數(shù)點(diǎn)左邊的數(shù)字用","分隔 |
controlsource | 指定與文本框綁定的數(shù)據(jù)源 |
selstart | 文本框中被選擇的文本的起始位置 |
sellength | 文本框中被選擇的文本的字符數(shù) |
seltext | 文本框中被選擇的文本 |
selectentry | 當(dāng)文本框得到焦點(diǎn)時(shí)是否自動(dòng)選中文本框中的內(nèi)容 |
format | 指定Value屬性數(shù)據(jù)輸入輸出數(shù)據(jù)格式。參數(shù)及意義如下: |
例如,如果表單中一個(gè)文本框用于顯示和輸入日期型數(shù)據(jù),則應(yīng)該將其value屬性設(shè)為{};如果一個(gè)文本框用于輸入5個(gè)任意字符,應(yīng)該將其inputmark屬性設(shè)為XXXXX;如果一個(gè)文本框用于輸入6位的數(shù)字,則應(yīng)該將其inputmark屬性設(shè)為999999.
Visual FoxPro基礎(chǔ)教程完整版
二。文本框常用的事件:見下表:
事件 | 發(fā)生時(shí)間 |
when | 在得到焦點(diǎn)之前發(fā)生 |
gotlocus | 在得到焦點(diǎn)時(shí)發(fā)生 |
valid | 在失去焦點(diǎn)前發(fā)生 |
lostfocus | 在失去焦點(diǎn)時(shí)發(fā)生 |
例如,可在when事件的代碼中保存文本框中原來的內(nèi)容,可在valid事件代碼中驗(yàn)證文本框中輸入內(nèi)容的正確性。valid事件中的return返回。F.,則文本框不會(huì)失去焦點(diǎn)。表單釋放時(shí),忽略return值的影響。
三。例1:在主程序main.prg中先調(diào)用表單login.scx進(jìn)行用戶登錄,如果用戶名和密碼正確,則調(diào)用表單xggz.scx(該表單的制作見5-2的例一).
1.制作login.scx并設(shè)置屬性:
表單login.scx包含下列對象:標(biāo)簽label1~label2作提示信息;文本框text1用于輸入用戶名,文本框text1用于輸入密碼,"確定"命令按鈕用于提交登錄;"取消"命令按鈕用于取消登錄,界面如圖18所示。
依照界面設(shè)置命令按鈕和標(biāo)簽的caption屬性,并將表單的caption屬性設(shè)為"用戶登錄",autocenter屬性設(shè)為。T.;將文本框text2的passwordchar屬性設(shè)為"*".將表單保存在e:myvfp.
2.編寫代碼:
*表單的activate事件代碼:
this.text2.enabled=.f. &&輸入用戶名后才能輸入密碼
this.text1.setfocus &&表單啟動(dòng)后光標(biāo)先定位到用戶名文本框
*"用戶名"文本框text1的確良keypress事件代碼:
if nKeycode=13.and.!empty(this.value) &&輸入完用戶名按回車鍵即進(jìn)入輸密碼
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. &&第一個(gè)用戶為guest,密碼是123456
case name="human".and.alltrim(thisform.text2.value)=="45678"
yes=.t. &&第二個(gè)用戶為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基礎(chǔ)教程完整版