一。文本框用于顯示,修改和錄入數據,常用屬性見下表:
屬性 | 功能 |
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基礎教程完整版