表單(form)在vfp中,是一種最重要,最常見(jiàn)的容器類(lèi)對(duì)象,在表單中可以添加各種對(duì)象,比如文本框,這些對(duì)象用于輸入或輸出等操作。在程序運(yùn)行時(shí),表單是用戶(hù)與應(yīng)用程序之間進(jìn)行交互的窗口,也就是說(shuō),在開(kāi)發(fā)vfp程序時(shí),一般都使用表單作為應(yīng)用程序的界面。
一。創(chuàng)建表單:
方式一:?jiǎn)螕?文件"→"新建",對(duì)話(huà)框中選"表單",在彈出的對(duì)話(huà)框中選"新建"表單,則系統(tǒng)彈出一個(gè)空白的表單。用戶(hù)即可在這個(gè)空白的表單上進(jìn)行設(shè)計(jì)。
方式二:在項(xiàng)目管理器中,選中"表單",單擊右側(cè)的"新建"按鈕,如圖11
方式三:在命令窗口中輸入"create form 表單名"命令,一樣可以打開(kāi)表單設(shè)計(jì)器。
二。表單設(shè)計(jì)器中的操作:
1.選擇表單控件:?jiǎn)螕舯韱慰丶梢赃x擇該控件;按住ctrl不松再單擊多個(gè)表單控件,可同時(shí)選擇多個(gè)表單控件。如果在表單設(shè)計(jì)器中拖動(dòng)鼠標(biāo),在表單上畫(huà)一個(gè)區(qū)域,則該區(qū)域內(nèi)的所有控件都被選擇。
2.向表單中添加控件:?jiǎn)螕舯韱慰丶ぞ邫谥械目丶鈽?biāo)移至表單中該控件的位置,單擊或拖動(dòng)鼠標(biāo)畫(huà)出該控件大小后松開(kāi)。
3.移動(dòng)表單中控件的位置:?jiǎn)螕粢苿?dòng)位置的表單控件,拖動(dòng)其到指定位置,或者單擊選中該控件后,用方向鍵移動(dòng)
4.改變控件的大?。菏髽?biāo)單擊控件,控件四周出現(xiàn)黑色的小方塊,再將指針指向小方塊,待指針變成雙箭頭時(shí)拖動(dòng)即可。
5.刪除控件:用鼠標(biāo)單擊選中控件,按delete鍵即可。
6.復(fù)制控件:?jiǎn)螕暨x中控件,按組合鍵ctrl+c復(fù)制,然后鼠標(biāo)在目的地單擊,按組合鍵ctrl+v粘貼。
說(shuō)明:復(fù)制控件時(shí),控件內(nèi)的代碼被一起復(fù)制。這是一個(gè)很有用的操作,比如,我們做一個(gè)表單,里面需要很文本框控件,我們可以先做出來(lái)一個(gè),其余的復(fù)制即可。
Visual FoxPro基礎(chǔ)教程完整版三。表單的數(shù)據(jù)環(huán)境:
表單中的數(shù)據(jù)環(huán)境是一個(gè)容器,用于設(shè)置表單中使用的表和視圖以及表單所要求的表之間的關(guān)系。這些表和視圖及表之間的關(guān)系都數(shù)據(jù)環(huán)境容器中的對(duì)象,可以分別設(shè)置它們的屬性。在執(zhí)行表單時(shí),數(shù)據(jù)環(huán)境中的表和視圖被自動(dòng)打開(kāi),表之間的關(guān)系被自動(dòng)建立。當(dāng)表單被釋放時(shí),數(shù)據(jù)環(huán)境中設(shè)置的表和視圖被自動(dòng)關(guān)閉。
1.數(shù)據(jù)環(huán)境的打開(kāi):右擊表單空白處,選"數(shù)據(jù)環(huán)境"命令,如圖1,
此時(shí)會(huì)彈出一個(gè)對(duì)話(huà)框,如圖2,
我們選中"工資情況",單擊"添加",再單擊"關(guān)閉",即可打開(kāi)"數(shù)據(jù)環(huán)境"容器,如圖3.
2.向數(shù)據(jù)環(huán)境中添加表或視圖:在數(shù)據(jù)環(huán)境設(shè)計(jì)器中右擊,選"添加"命令,如圖4,
我們?cè)趶棾龅膶?duì)話(huà)框中選中"職工檔案",單擊"添加",再單擊"關(guān)閉",如圖5,
這樣我們就把"職工檔案"表也添加到表單的數(shù)據(jù)環(huán)境中了,添加后的數(shù)據(jù)環(huán)境如圖6,
即現(xiàn)在的數(shù)據(jù)環(huán)境中有兩個(gè)表。
3.在數(shù)據(jù)環(huán)境中移動(dòng)表或視圖:在數(shù)據(jù)環(huán)境設(shè)計(jì)器中單擊選中要移動(dòng)的表或視圖,按右鍵,選"移動(dòng)".
4.在數(shù)據(jù)環(huán)境中設(shè)置關(guān)系:如果加入數(shù)據(jù)環(huán)境的表具有在數(shù)據(jù)庫(kù)中設(shè)置的關(guān)系,則這些關(guān)系自動(dòng)帶入數(shù)據(jù)環(huán)境中。如果表之間沒(méi)有關(guān)系,則可在數(shù)據(jù)環(huán)境中進(jìn)行設(shè)置表之間的臨時(shí)關(guān)系。若要在數(shù)據(jù)環(huán)境中設(shè)置臨時(shí)關(guān)系,可從主表中拖動(dòng)字段到相關(guān)表中相匹配的索引標(biāo)識(shí)。在數(shù)據(jù)環(huán)境中設(shè)置了一個(gè)臨時(shí)關(guān)系后,會(huì)在表之間出現(xiàn)一條連線(xiàn)來(lái)指示這個(gè)關(guān)系。例如,我們?cè)跀?shù)據(jù)環(huán)境中拖動(dòng)"工資情況"表的"編號(hào)"字段到"職工檔案"表的"bh1"索引標(biāo)識(shí)上,即在這兩個(gè)表之間建立了一個(gè)臨時(shí)關(guān)系,如圖7
四。表單常用的屬性:見(jiàn)下表:
屬性 | 默認(rèn)值 | 功能 |
caption | form1 | 指定表單標(biāo)題欄顯示的文本 |
name | form1 | 指定表單對(duì)象名,在程序設(shè)計(jì)中可以通過(guò)引用表單名來(lái)引用表單 |
borderstyle | 3 | 決定表單邊框:0-無(wú)邊框,1-單線(xiàn)邊框,2-固定對(duì)話(huà)框,3-可調(diào)邊框 |
maxbutton | .T. | 控制表單是否有最大化按鈕 |
minbutton | .T. | 控制表單是否有最小化按鈕 |
windowstate | 普通 | 控制表單是普通(0),最小化(1),最大化(2).如windowstate為2,則maxbutton和minbutton將不起作用. |
alwaysontop | .F. | 控制表單是否總是處在其它打開(kāi)的窗口之上,即防止所引用的表單被其它表單所覆蓋 |
autocenter | .F. | 控制表單運(yùn)行時(shí)是否自動(dòng)在vfp主窗口居中 |
moveable | .T. | 控制表單運(yùn)行時(shí),是否可移動(dòng)表單到屏幕的新位置上 |
visible | .T. | 指定表單在運(yùn)行時(shí)是可見(jiàn)的還是隱藏的 |
closable | .T. | 指定表單運(yùn)行時(shí),用戶(hù)是否能夠通過(guò)單擊"關(guān)閉"按鈕來(lái)退出表單 |
windowtype | 無(wú)模式 | 控制表單是無(wú)模式還是模式表單 0-無(wú)模式,用戶(hù)不必關(guān)閉表單就可方問(wèn)其他界面 1-模式,用戶(hù)必須關(guān)閉當(dāng)前表單方可訪(fǎng)問(wèn)其他界面 |
事件 | 觸發(fā)時(shí)間 |
activate | 當(dāng)一個(gè)表單變成活動(dòng)表單時(shí)觸發(fā) |
deactivate | 表單從活動(dòng)變成不活動(dòng)時(shí)觸發(fā) |
init | 當(dāng)表單第一次創(chuàng)建時(shí)觸發(fā),一般將表單的初始化代碼放在其中 |
load | 創(chuàng)建表單前觸發(fā),事件發(fā)生在init事件之前.因?yàn)榇藭r(shí)表單中的控件尚未建立,所以該事件的代碼不能用于處理表單中的控件,但可用來(lái)打開(kāi)數(shù)據(jù)庫(kù)和表等 |
unload | 釋放表單是觸發(fā),該事件發(fā)生在destroy事件之后 |
click | 在鼠標(biāo)單擊表單時(shí)觸發(fā) |
dbclick | 在鼠標(biāo)雙擊表單時(shí)觸發(fā) |
destroy | 當(dāng)釋放表單時(shí)觸發(fā) |
error | 當(dāng)方法中有一個(gè)運(yùn)行錯(cuò)誤時(shí)觸發(fā) |
七。表單文件的執(zhí)行和關(guān)閉:
1.執(zhí)行表單文件:
(1).在表單設(shè)計(jì)器中執(zhí)行表單:按右鍵,在快捷菜單中選擇"執(zhí)行表單",或在表單菜單中選擇"執(zhí)行表單"菜單項(xiàng)
(2).在項(xiàng)目管理器中執(zhí)行表單:在項(xiàng)目管理器中選中表單名,單擊右側(cè)的"運(yùn)行"按鈕
(3).在在程序中調(diào)用執(zhí)行:在表單設(shè)計(jì)器中直接執(zhí)行表單用于系統(tǒng)開(kāi)發(fā)階段的調(diào)試工作,實(shí)際應(yīng)用中,表單一般通過(guò)程序代碼調(diào)用執(zhí)行,調(diào)用命令如下:
格式:do form 表單文件名 [name 表單名] [with 參數(shù)表] [to 變量名]
說(shuō)明:
Ⅰ。name表單名指定執(zhí)行表單的名字,以后引用該表單時(shí)使用這個(gè)名字
Ⅱ。with參數(shù)表用于向表單的init事件代碼傳遞參數(shù)。如果執(zhí)行的是表單集,要求表單集的windowtype為0(無(wú)模式)或(1模式),參數(shù)表用于向表單集的init事件傳遞代碼
Ⅲ。to 變量名接收表單unload事件的return語(yǔ)句的返回值,但要求表單的windowtype為1(模式)
2.激活事件處理:
格式:read events
說(shuō)明:只有執(zhí)行了read events,vfp才啟動(dòng)事件處理。當(dāng)執(zhí)行clear events后,系統(tǒng)停止事件處理
3.關(guān)閉表單:
格式:表單引用名。release
例如:thisform.release用于關(guān)閉當(dāng)前表單