第九章表單設(shè)計及應(yīng)用_第1頁
第九章表單設(shè)計及應(yīng)用_第2頁
第九章表單設(shè)計及應(yīng)用_第3頁
第九章表單設(shè)計及應(yīng)用_第4頁
第九章表單設(shè)計及應(yīng)用_第5頁
已閱讀5頁,還剩97頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第九章表單設(shè)計與應(yīng)用9.1創(chuàng)建與運行表單9.2表單設(shè)計器9.3表單的屬性和方法9.4基本型控件9.5容器型控件9.1創(chuàng)建與運行表單表單(Form)是VisualFoxPro提供的用于建立應(yīng)用程序界面的最主要的工具之一。表單相當(dāng)于WINDOWS應(yīng)用程序的窗口表單可以屬于某個項目,也可以游離于任何項目之外,它是一個特殊的磁盤文件,其擴(kuò)展名為.scx,表單備注文件的擴(kuò)展名是.sct.在項目管理器中創(chuàng)建的表單自動隸屬于該項目。9.1.1建立表單

創(chuàng)建表單一般有兩種途徑:使用表單向?qū)?chuàng)建簡易的數(shù)據(jù)表單;使用表單設(shè)計器創(chuàng)建、設(shè)計新的表單或修改已有的任何形式的表單。9.1.1建立表單1.用表單向?qū)гO(shè)計表單:VFP提供了兩種表單向?qū)韼椭脩魟?chuàng)建表單:單表向?qū)В哼m合于創(chuàng)建基于一個表的表單;一對多表單向?qū)В哼m合于創(chuàng)建基于兩個具有一對多關(guān)系的表的表單。9.1.1建立表單啟動表單向?qū)в幸韵滤姆N途徑:打開“項目管理器”,選擇“文檔”選項卡,從中選擇“表單”。然后單擊“新建”按鈕。在彈出的“新建表單”對話框中單擊“表單向?qū)А卑粹o。在系統(tǒng)菜單中選擇【文件】|【新建】命令,或者單擊工具欄上的“新建”按鈕,打開“新建”對話框,在文件類型欄中選擇“表單”。然后單擊“向?qū)А卑粹o在系統(tǒng)菜單中選擇【工具】|【向?qū)А縷【表單】命令。直接單擊常用工具欄上的“表單向?qū)А眻D標(biāo)按鈕。

9.1.1建立表單例9.1利用“表單向?qū)А保瑢Α皩W(xué)生管理”數(shù)據(jù)庫中的student.dbf創(chuàng)建簡單的表單xsxx.scx。(課堂演示)9.1.1建立表單2.用表單設(shè)計器設(shè)計表單:菜單方法:若是新建表單,在系統(tǒng)菜單中選擇【文件】|【新建】,在文件類型對話框中選擇“表單”,單擊“新建文件”按鈕;若是修改表單,則單擊【文件】|【打開】,在打開對話框中選擇要修改的表單文件名,單擊“打開”按鈕。命令方法:在COMMAND窗口輸入如下命令:

CREATEFORM<文件名>&&創(chuàng)建新的表單或

MODIFYFORM<文件名>&&打開一個已有的表單9.1.1建立表單在項目管理器中,先選擇“文檔”標(biāo)簽,然后選擇表單,單擊新建按鈕。若是修改表單,選擇要修改的表單,單擊“修改”按鈕。

9.1.1建立表單在表單設(shè)計器環(huán)境下,也可以調(diào)用表單生成器方便、快速的產(chǎn)生表單。調(diào)用表單生成器的方法:選擇“表單”菜單中“快速表單”命令;單擊“表單設(shè)計器”工具欄中的“表單生成器”按扭;右鍵單擊表單窗口,在彈出的快捷菜單中選擇“生成器”命令。9.1.1建立表單修改已有的表單:在“項目管理器”中,選擇“文檔”選項卡→選擇需要修改的表單文件,然后單擊“修改”按紐。系統(tǒng)菜單中選擇【文件】|【打開】命令,選擇需要修改的表單文件,打開相應(yīng)的表單設(shè)計器。命令方式:modifyform<表單文件名>9.1.2運行表單運行表單,就是根據(jù)表單文件及表單備注文件的內(nèi)容產(chǎn)生表單對象。9.1.2運行表單1.在設(shè)計時運行表單

在設(shè)計時可采用以下方法運行表單文件:在項目管理器窗口中,選擇要運行的表單,然后單擊“運行”按鈕。在表單設(shè)計器窗口中,在系統(tǒng)菜單中選擇【表單】|【執(zhí)行表單】命令,或單擊常用工具欄上的“運行”按鈕。在系統(tǒng)菜單中選擇【程序】|【運行】命令,打開“運行”對話框,然后在運行對話框中選擇要運行的表單文件,單擊“運行”按鈕。在命令窗口輸入命令:DOFORM<表單文件名>。9.1.2運行表單注意:表單文件及其表單備注文件必須同時存在才能運行表單。9.1.2運行表單2.在程序中調(diào)用表單在程序中/命令窗口調(diào)用表單可用下列命令:

Doform<表單文件名>[name<變量名>][with<實參1><,實參

2>,…][linked][noshow][name<變量名>]:若包含name子句,系統(tǒng)將建立指定名字的變量,并使它指向表單對象;否則,系統(tǒng)建立與表單文件同名的變量指向表單對象.[with<參數(shù)列表>]:用于向表單傳遞參數(shù)。若在表單運行時引發(fā)了init事件,系統(tǒng)會將各實參的值傳遞給該事件代碼parameters或lparameters子句中的各形參。9.1.2運行表單[linked]:若包含linked,表單對象將隨指向它的變量的清除而關(guān)閉(釋放);否則,即使變量已經(jīng)清除,表單對象依然存在.但不管有沒有l(wèi)inked,指向表單對象的變量并不會隨表單的關(guān)閉而清除,此時,該變量的取值為.null.[NOSHOW]:如果包含NOSHOW關(guān)鍵字,表單運行時將不顯示,直到將表單的Visible屬性被設(shè)置為.T.,或者調(diào)用表單的Show方法。9.1.2運行表單將參數(shù)傳遞到表單:如果要將參數(shù)傳遞到表單,可按如下操作:在表單的INIT事件中,用PARAMETERS定義形參:

PARAMETERSparam1,param2在表單的INIT事件中可以直接訪問參數(shù),如果在表單的其它方法或事件中需要使用該參數(shù),必需在表單的INIT事件中將參數(shù)保存到表單的屬性或變量中。運行表單時,使用帶WITH子句的DOFORM命令,系統(tǒng)會將WITH子句的實參值傳遞到INIT事件代碼的PARAMETERS子句中的各形參。9.1.2運行表單例9.2:新建一個不包含任何控件的空表單myform.scx,然后用doform命令運行它。1)Createformmyform2)文件—保存—關(guān)閉表單文件3)Doformmyformlinked4)?vartype(myform)5)關(guān)閉/釋放表單6)?vartype(myform),myform9.2表單設(shè)計器

表單設(shè)計器啟動后,在vfp主窗口上將出現(xiàn)“表單設(shè)計器”窗口、“屬性”窗口、“表單控件”工具欄、“表單設(shè)計器”工具欄以及“表單”菜單。9.2.1表單設(shè)計環(huán)境

1.表單設(shè)計器窗口

“表單設(shè)計器”窗口內(nèi)包含正在設(shè)計的表單。用戶可在表單窗口中可視化地添加和修改控件、改變控件布局,表單窗口只能在“表單設(shè)計器”窗口內(nèi)移動。以新建方式啟動表單設(shè)計器時,系統(tǒng)將默認(rèn)為用戶創(chuàng)建一個空白表單,如下圖所示部分。9.2.1表單設(shè)計環(huán)境

2.屬性窗口設(shè)計表單的絕大多數(shù)工作都是在屬性窗口中完成的,因此用戶必須熟悉屬性窗口的用法。如果在表單設(shè)計器中沒有出現(xiàn)屬性窗口,可在系統(tǒng)菜單中單擊【顯示】|【屬性】,屬性窗口如下圖所示?!皩ο蟆毕吕斜砜驁D頁框選項卡屬性設(shè)置框9.2.1表單設(shè)計環(huán)境3.表單控件工具欄

設(shè)計表單的主要任務(wù)就是利用“表單控件”設(shè)計交互式用戶界面。“表單控件”工具欄是表單設(shè)計的主要工具。默認(rèn)包含21個控件、4個輔助按鈕,如下圖所示。9.2.1表單設(shè)計環(huán)境4.表單設(shè)計器工具欄打開“表單設(shè)計器”時,主窗口中會自動出現(xiàn)“表單設(shè)計器”工具欄,如下圖所示。9.2.1表單設(shè)計環(huán)境5.表單菜單表單菜單中的命令主要用于創(chuàng)建、編輯表單或表單集,例如為表單增加新的屬性或方法。9.2.2控件操作與布局1.控件的基本操作選定控件用鼠標(biāo)單擊控件可以選定該控件,被選定的控件四周出現(xiàn)8個控點

移動控件先選定控件,然后用鼠標(biāo)將控件拖動到需要的位置上。也可用方向鍵對控件進(jìn)行移動。調(diào)整控件大小選定控件,然后拖動控件四周的某個控點可以改變控件的寬度和高度。也可以按住shift鍵的同時,用方向鍵對控件大小進(jìn)行微調(diào)。9.2.2控件操作與布局復(fù)制控件先選定控件,選擇【編輯】|【復(fù)制】命令,然后選擇【編輯】|【粘貼】命令,最后將復(fù)制產(chǎn)生的新控件拖動到需要的位置。刪除控件選定不需要的控件,然后按Delete鍵或選擇【編輯】|【剪切】命令9.2.2控件操作與布局2、控件布局要快速整齊的排列表單中的控件,選種控件后,選擇【格式】菜單中相應(yīng)命令或利用“布局”工具欄來實現(xiàn)3、設(shè)置Tab鍵次序當(dāng)表單運行時,用戶可以按Tab鍵選擇表單中的控件,使光標(biāo)在控件間移動??丶腡ab鍵次序決定了選擇控件的次序。表單控件的默認(rèn)Tab鍵次序是控件添加到表單時的次序。VFP提供了兩種方式來設(shè)置Tab鍵次序:交互方式和列表方式。9.2.2控件操作與布局設(shè)置方式如下:選擇“工具”菜單中的“選項”命令,打開“選項”對話框選擇“表單”選項卡在“Tab鍵次序”下拉列表框中選擇“交互”或者“按列表”。交互方式下,設(shè)置Tab鍵次序步驟(演示)按列表方式下,設(shè)置Tab鍵次序(演示)

注意:標(biāo)簽(LABEL)不能獲得焦點9.2.3數(shù)據(jù)環(huán)境數(shù)據(jù)環(huán)境指表單或表單集使用的數(shù)據(jù)源,包括表、視圖、以及表之間的關(guān)系。數(shù)據(jù)環(huán)境中表或視圖會隨著表單的打開或運行而自動打開,隨著表單的關(guān)閉或釋放而關(guān)閉。設(shè)置數(shù)據(jù)環(huán)境后,設(shè)置表單中各控件的controlsource屬性,使控件與字段相關(guān)。9.2.3數(shù)據(jù)環(huán)境1、數(shù)據(jù)環(huán)境的常用屬性數(shù)據(jù)環(huán)境是一個對象,有自己的屬性、方法和事件。常用的兩個數(shù)據(jù)環(huán)境屬性是:AutoOpenTables:當(dāng)運行或打開表單時,是否打開數(shù)據(jù)環(huán)境中的表和視圖。默認(rèn)值為.T.AutoCloseTables:當(dāng)釋放或關(guān)閉表單時,是否關(guān)閉由數(shù)據(jù)環(huán)境指定的表和視圖。默認(rèn)值為.T.9.2.3數(shù)據(jù)環(huán)境2.打開數(shù)據(jù)環(huán)境設(shè)計器表單設(shè)計器環(huán)境下,單擊“表單設(shè)計器”工具欄上的“數(shù)據(jù)環(huán)境”按鈕,或選擇【顯示】|【數(shù)據(jù)環(huán)境】命令,即可打開“數(shù)據(jù)環(huán)境設(shè)計器”窗口,此時,系統(tǒng)菜單欄上將出現(xiàn)“數(shù)據(jù)環(huán)境”菜單。9.2.3數(shù)據(jù)環(huán)境3.向數(shù)據(jù)環(huán)境添加表或視圖在數(shù)據(jù)環(huán)境設(shè)計器環(huán)境下,按下列方法向數(shù)據(jù)環(huán)境添加表或視圖:在系統(tǒng)菜單中選擇【數(shù)據(jù)環(huán)境】|【添加】命令,或右鍵單擊“數(shù)據(jù)環(huán)境設(shè)計器窗口”,然后在彈出的快捷菜單中選擇【添加】命令,打開“添加表或視圖”對話框,如圖所示。如果數(shù)據(jù)環(huán)境原來是空的,那么在打開數(shù)據(jù)環(huán)境設(shè)計器時,該對話框就會自動出現(xiàn)9.2.3數(shù)據(jù)環(huán)境4.從數(shù)據(jù)環(huán)境中移去表或視圖在“數(shù)據(jù)環(huán)境設(shè)計器”窗口中,選擇要移去的表或視圖,在系統(tǒng)菜單中選擇【數(shù)據(jù)環(huán)境】|【移去】命令。也可以用鼠標(biāo)右鍵單擊要移去的表或視圖,然后在彈出的快捷菜單中選擇【移去】命令。9.2.3數(shù)據(jù)環(huán)境5.在數(shù)據(jù)環(huán)境中設(shè)置關(guān)系設(shè)置關(guān)系的方法為:將主表的某個字段(作為關(guān)聯(lián)表達(dá)式)拖曳到子表的相匹配的索引標(biāo)記上既可。如果子表上沒有與主表字段相匹配的索引,也可以將主表字段拖動到子表的某個字段上,這時應(yīng)根據(jù)系統(tǒng)提示確認(rèn)創(chuàng)建索引。9.2.3數(shù)據(jù)環(huán)境6.在數(shù)據(jù)環(huán)境中編輯關(guān)系關(guān)聯(lián)是數(shù)據(jù)環(huán)境中的對象,它有自己的屬性、方法和事件。編輯關(guān)聯(lián)主要通過設(shè)置關(guān)聯(lián)的屬性來完成。9.2.3數(shù)據(jù)環(huán)境常用的關(guān)系屬性有:RelationalExpr:用于指定基于主表的關(guān)聯(lián)表達(dá)式。ParentAlias:用于指明主表的別名。ChildAlias:用于指明子表的別名。ChildOrder:用于指定子表中與關(guān)聯(lián)表達(dá)式相匹配的索引。OneToMany:用于指明關(guān)系是否為一對多關(guān)系,該屬性默認(rèn)為“.F.”,如果關(guān)系為“一對多關(guān)系”,該屬性一定要設(shè)置為“.T.”。

9.2.3數(shù)據(jù)環(huán)境7.向表單添加字段9.3表單常用屬性和方法9.3.1.表單常用屬性屬性描述默認(rèn)值A(chǔ)lwaysOnTop指定表單是否總是位于其它打開窗口之上.F.AutoCenter居中顯示.F.BackColor指定表單窗口的背景顏色255,255,255BorderStyle指定表單邊框的風(fēng)格。3Caption顯示于表單標(biāo)題欄上的文本Form1Closable決定表單的右上角的關(guān)閉按鈕是否有效.T.DataSession指定表單中的表是在全局能訪問的工作區(qū)打開(設(shè)置值為1)還是在表單自己的工作區(qū)打開(設(shè)置值為2)1MaxButton確定表單右上角是否有最大化按鈕.T.MixButton確定表單右上角是否有最小化按鈕.T.Movable確定表單是否能移動.T.Scrollbars指定表單的滾動條類型。可取值為:0(無),1(水平)2(垂直)3(既水平又垂直)0WindowState指定表單的狀態(tài):0(正常)1(最小化),2(最大化)0WindowType指定表單是模式表單(設(shè)置值為1)還是非模式表單(設(shè)置值為0)。在一個應(yīng)用程序中,如果運行了一個模式表單,那么在關(guān)閉該表單之前不能訪問應(yīng)用程序中的其他表單09.3.2表單常用事件與方法1.運行事件Load事件:在表單對象建立之前引發(fā),即運行表單,先引發(fā)表單的load事件,再引發(fā)表單的init事件。Init事件:在表單創(chuàng)建時引發(fā)。9.3.2表單常用事件與方法2.關(guān)閉時事件Destroy事件:在表單對象釋放時引發(fā)。Unload事件:在表單對象釋放時引發(fā),是表單對象釋放時最后一個要引發(fā)的事件。9.3.2表單常用事件與方法3.交互時事件Gotfocus:對象接收到焦點時發(fā)生的事件。Click:用鼠標(biāo)單擊對象時引發(fā)。Dbclick:用鼠標(biāo)雙擊對象時引發(fā)。Rightclick:用鼠標(biāo)右鍵單擊對象時引發(fā)。Interactivechange:當(dāng)通過鼠標(biāo)或鍵盤交互式改變一個控件的值時引發(fā)。9.3.2表單常用事件與方法4.錯誤時事件Error:當(dāng)對象方法或事件代碼在運行過程中產(chǎn)生錯誤時引發(fā)。9.3.2表單常用事件與方法5.表單的顯示、隱藏與關(guān)閉方法Show方法:顯示表單。該方法將表單的Visible屬性設(shè)置為.T.。Hide方法:隱藏表單。該方法將表單的Visible屬性設(shè)置為.F.。與Relase方法不同,Hide只是把表單隱藏,但并不將表單從內(nèi)存釋放,之后可用Show方法重新顯示表單。9.3.2表單常用事件與方法Relase方法:將表單從內(nèi)存中釋放。比如表單有一個命令按鈕,如果希望單擊該命令按鈕時關(guān)閉表單,就可以在該命令按鈕的Click事件中包含如下代碼:

ThisForm.Release

表單運行時,用戶單擊表單右上角的關(guān)閉按鈕,系統(tǒng)會自動執(zhí)行Relase方法。9.3.2表單常用事件與方法6.表單或控件的刷新方法Refresh方法:刷新表單。7.控件的焦點設(shè)置方法Setfocus:讓控件獲得焦點,使其成為活動對象。若一個控件的Enabled屬性值或Visible屬性值為.F.,將不能獲得焦點。

9.3.2表單常用事件與方法p163例9.39.3.3添加新的屬性和方法

1.創(chuàng)建新屬性向表單添加新屬性的步驟如下:在系統(tǒng)菜單中選擇【表單】|【新建屬性】命令,打開“新建屬性”對話框,如下圖所示。在“名稱”框中輸入屬性名稱有選擇地在“說明”框中輸入新建屬性的說明信息9.3.3添加新的屬性和方法2.創(chuàng)建新方法

在表單中添加新方法的步驟如下:在系統(tǒng)菜單中選擇【表單】|【新建方法程序】命令,打開如下圖所示的“新建方法程序”對話框。在“名稱”框中輸入方法名。有選擇地在“說明”框中輸入新建方法的說明信息。9.3.3添加新的屬性和方法3.編輯方法或事件代碼“顯示”→“代碼”,打開代碼編輯窗口從“對象”框中選擇方法或事件所屬的對象(表單或表單中的控件)從“過程”框中指定需要編輯的方法或事件在編輯區(qū)輸入或修改方法或事件的代碼。9.3.3添加新的屬性和方法P165例9.49.4基本型控件控件可分為基本型控件和容器型控件?;拘涂丶侵覆荒馨渌丶目丶?,如標(biāo)簽、文本框、命令按紐等;容器型控件是指可包含其他控件的控件,如選項按紐組、表格等。9.4基本型控件常用控件的公共屬性有:name:控件的名稱,它是代碼中訪問控件的標(biāo)識(表單或表單集除外),在設(shè)計代碼時,應(yīng)該用name屬性值(對象名稱)而不能用caption屬性值來引用對象。Fontname:字體名。Fontbold:字體樣式為粗體。Fontsize:字體大小。Fontitalic:字體樣式為斜體。Forecolor:前景色。Visible:是否顯示控件。Enabled:控件運行時是否有效。若為.T.,則表示控件有效,否則運行時控件不可使用。9.4.1標(biāo)簽(Label)控件1.標(biāo)簽控件的功能 標(biāo)簽主要用于顯示固定的文本信息。標(biāo)簽控件不具有GotFocus事件。2.標(biāo)簽控件常用屬性caption:

指定標(biāo)簽的顯示文本。可以在設(shè)計時設(shè)置,也可以在程序運時設(shè)置或修改。標(biāo)題文本顯示在屏幕上以幫助使用者識別各對象。標(biāo)題文本的顯示位置視對象類型的不同而不同。如:lebel的標(biāo)題文本顯示在標(biāo)簽的區(qū)域內(nèi),表單form的標(biāo)題文本顯示在表單的標(biāo)題欄上。9.4.1標(biāo)簽(Label)控件autosize:autosize如果為真,標(biāo)簽在表單中的大小由caption屬性中的文本長度決定,否則其大小由WIDTH和HEIGHT屬性決定。forecolor:設(shè)置標(biāo)題的字體顏色。backstyle:設(shè)置標(biāo)簽的背景是否透明,0透明,1不透明,默認(rèn)為不透明。name:標(biāo)簽對象的名稱,是程序中訪問標(biāo)簽對象的標(biāo)識。Alignment:指定標(biāo)題文本在控件中顯示的對齊方式。0-左對齊(默認(rèn)值),1-右對齊,2-中央對齊9.4.2命令按鈕(CommandButton)控件1.命令按鈕控件功能 命令按鈕典型地用來啟動某個事件代碼、完成特定功能,如關(guān)閉表單、移動記錄指針、打印報表等。對命令按鈕的使用最重要的是編寫Click事件代碼。

2.命令按鈕控件常用屬性Default:default的屬性值為.T.的命令按鈕稱為“默認(rèn)”按鈕。命令按鈕的Default屬性默認(rèn)值為.F.,如果該屬性設(shè)置為.T.,在該按鈕所在的表單激活的情況下,按Enter,可以激活該按鈕,并執(zhí)行該按鈕的Click事件代碼。一個表單只能有一個按鈕的Default屬性為真。9.4.2命令按鈕(CommandButton)控件Cancel:cancel屬性值為.T.的命令按鈕稱為“取消”按鈕。命令按鈕的Cancel屬性默認(rèn)值為.F.,如果設(shè)置為.T.,在該按鈕所在的表單激活的情況下,按Esc鍵可以激活該按鈕,并執(zhí)行該按鈕的Click事件代碼。一個表單只能有一個按鈕的Cancel屬性為真。 這兩個屬性主要適用于命令按鈕。Caption:設(shè)置命令按鈕的標(biāo)題。9.4.2命令按鈕(CommandButton)控件Enabled:確定按鈕是否有效,如果按鈕的屬性Enabled為.F.,單擊該按鈕不會引發(fā)該按鈕的單擊事件。需要說明的是,若一個容器對象的Enabled屬性值為.F.,則它里面的所有對象也都不會響應(yīng)用戶引發(fā)的事件,而不管這些對象的Enabled屬性值如何。

該屬性適用于絕大多數(shù)控件。9.4.2命令按鈕(CommandButton)控件Visible:指定對象是可見還是隱藏。在表單設(shè)計器環(huán)境下創(chuàng)建的對象,該屬性的默認(rèn)值為.T.,即對象是可見的。以編程方式創(chuàng)建的對象,該屬性的默認(rèn)值是.F.,即對象是隱藏的。當(dāng)一個表單由活動變?yōu)殡[藏,最近活動的表單或其他對象將成為活動的。當(dāng)一個表單的visible屬性由.F.設(shè)置為.T.時,表單將成為可見的,但并不成為活動的。要使一個表單成為活動的,可使用show方法。Show方法在使表單成為可見的同時,使其成為活動的。該屬性適用于絕大多數(shù)控件。9.4.3文本框(TextBox)控件

1.文本框控件的功能用于顯示或接收單行文本信息(不設(shè)置ControlSource屬性),可編輯任何類型的數(shù)據(jù),默認(rèn)輸入類型為字符型,最大長度為256個字符。用于顯示或編輯對應(yīng)變量或字段的值(設(shè)置ControlSource屬性為已有變量或字段名)。9.4.3文本框(TextBox)控件2.文本框控件常用屬性ControlSource:設(shè)置文本框的數(shù)據(jù)來源。數(shù)據(jù)源是一個字段或內(nèi)存變量。運行時,文本框首先顯示該變量的內(nèi)容。該屬性適用于文本框、編輯框、復(fù)選框、列表框、組合框、命令組、選項組、列等控件。PassWordChar:設(shè)置輸入口令時顯示的字符。為空時顯示用戶輸入的字符,否則顯示占位字符(通常為*),但實際輸入值仍在value屬性中。該屬性僅適用于文本框。Readonly:確定文本框是否為只讀,為“.T.”時,文本框的值不可修改。9.4.3文本框(TextBox)控件Value:設(shè)置或返回文本框顯示的數(shù)據(jù),默認(rèn)值為空串,字符型。文本框可編輯數(shù)值型、字符型、邏輯型、日期型或日期時間型數(shù)據(jù),通過對該屬性的賦值改變文本框可編輯數(shù)據(jù)的類型。如果沒有為ControlSource屬性指定數(shù)據(jù)源,可以通過該屬性訪問文本框的內(nèi)容。它的初值決定文本框中值的類型。如果為ControlSource屬性指定了數(shù)據(jù)源,該屬性值與ControlSource屬性指定的變量或字段的值相同。9.4.3文本框(TextBox)控件函數(shù):Messagebox()格式:Messagebox(cMessageText[,nDialogBoxType[,cTitleBarText]])功能:該函數(shù)用于顯示一個對話框。通常用來提示用戶,也可以讓用戶做一些簡單的選擇。說明:字符表達(dá)式cMessageText指定在對話框中顯示的文本,如果要顯示多行,要在文本中包含CHR(13)字符(表示回車);nDialogBoxType是對話框類型,用數(shù)值表示,用來指定對話框中顯示的按鈕、圖標(biāo)和默認(rèn)值;cTitleBarText是對話框標(biāo)題,即對話框標(biāo)題欄中的文本,若cTitleBarText缺省,則默認(rèn)值為“MicrosoftVisualFoxPro”。nDialogBoxType參數(shù)設(shè)置如P169表9.3所示。9.4.3文本框(TextBox)控件Messagebox()函數(shù)將根據(jù)用戶按下了對話框的哪個按鈕,返回一個數(shù)值,程序可以通過對返回值的測試,決定下一步的操作。返回值和按鈕的對應(yīng)關(guān)系如P169表9.4所示。例如:

?messagebox("這是對話框"+chr(13)+"中的文字",16,"這是標(biāo)題") ?messagebox("是否確認(rèn)退出",1+32+0,"確認(rèn)退出")9.4.3文本框(TextBox)控件P169例9.59.4.4編輯框(EditBox)控件

1.編輯框控件的功能 用于顯示或編輯多行文本信息。編輯框?qū)嶋H上是一個完整的簡單字處理器,在編輯框中能夠選擇、剪切、粘貼以及復(fù)制正文,可以實現(xiàn)自動換行,能夠有自己的垂直滾動條。編輯框只能輸入字符型數(shù)據(jù),包括字符型內(nèi)存變量、數(shù)組元素、字段以及備注型字段里的內(nèi)容。9.4.4編輯框(EditBox)控件2.編輯框常用屬性ControlSource:設(shè)置編輯框的數(shù)據(jù)源,一般為數(shù)據(jù)表的備注字段。Value:保存編輯框中的內(nèi)容,可以通過該屬性來訪問編輯框中的內(nèi)容。9.4.4編輯框(EditBox)控件Hideselection:指定當(dāng)編輯框失去焦點時,編輯框中選定的文本是否仍顯示為選定狀態(tài)。該屬性的默認(rèn)值為.T.,即當(dāng)編輯框失去焦點時,編輯框中選中的文本不顯示為選定狀態(tài),當(dāng)編輯框再次獲得焦點時,選定文本重新顯示為選定狀態(tài)。該屬性為.F.時,當(dāng)編輯框失去焦點時,編輯框中選定的文本仍顯示為選定狀態(tài)。該屬性在設(shè)計和運行時均可用,也適用于文本框、組合框等控件。9.4.4編輯框(EditBox)控件Readonly:確定用戶是否能修改編輯框中的內(nèi)容。該屬性的默認(rèn)值為.F.,此時用戶可以修改編輯框中的內(nèi)容。Readonly與Enabled是有區(qū)別的。雖然在Readonly為.T.和Enabled為.F.兩種情況下,都使編輯框具有只讀的特點,但在前種情況下,用戶仍能移動焦點至編輯框上并使用滾動條,而后種情況則不能。Scroolbars:指定編輯框是否具有滾動條,當(dāng)屬性值為0時,編輯框沒有滾動條,當(dāng)屬性值為2(默認(rèn)值)時,編輯框包含垂直滾動條。9.4.4編輯框(EditBox)控件Selstart:返回用戶在編輯框中所選文本的起始點位置或插入點位置(沒有文本選定時)。SelLength:返回用戶在文本輸入?yún)^(qū)中所選定字符的數(shù)目SelText:返回用戶在編輯區(qū)內(nèi)選定的文本,如果沒有選定任何文本,則返回空串。9.4.4編輯框(EditBox)控件這三個屬性在使用時要注意:若把SelLength屬性值設(shè)置成小于0,將產(chǎn)生一個錯誤。若SelStart

的設(shè)置值大于文本總字符數(shù),系統(tǒng)自動將其調(diào)整為文本的總字符數(shù),即插入點位于文本末尾。若改變了SelStart值,系統(tǒng)自動把SelLength屬性值設(shè)置成0。若將SelText屬性設(shè)置成一個新值,則這個新值會去置換編輯區(qū)中的所選文本并將SelLengh

置為0;若SelLengh

值本來就是0,則新值就會被插入到插入點處。9.4.4編輯框(EditBox)控件例:表單里包含一個編輯框Edit1和兩個命令按鈕Command1(查找)、Command2(替換),如下圖所示。要求:單擊“查找”按鈕時,選擇Edit1里的某個單詞example,單擊“替換”按鈕時,用單詞exercise置換已選擇的單詞example9.4.4編輯框(EditBox)控件要點:①編輯框的HideSelection的屬性值為.F.,這樣,單擊“查找”按鈕找到的字符串就會顯示為選定狀態(tài)。②“查找”按鈕的CLICK事件代碼為:n=at("example",thisform.edit1.value)ifn<>0 thisform.edit1.selstart=n-1 thisform.edit1.sellength=len("example")else waitwindows"沒有相匹配的單詞"timeout1endif9.4.4編輯框(EditBox)控件③“替換”按鈕的click事件代碼:ifthisform.edit1.seltext="example" thisform.edit1.seltext="exercise"else waitwindows"沒有選擇需要置換的單詞"timeout1endif9.4.5復(fù)選框(CheckBox)控件

1.復(fù)選框的功能 用于標(biāo)識一個兩值狀態(tài),如真(.t.)或假(.f.)。當(dāng)處于“真”狀態(tài)時,復(fù)選框內(nèi)顯示一個對勾,當(dāng)處于“假”狀態(tài)時復(fù)選框內(nèi)為空白。2.復(fù)選框常用屬性ControlSource屬性:用于指定復(fù)選框的數(shù)據(jù)源,數(shù)據(jù)源可以是字段變量或內(nèi)存變量。變量類型可以是邏輯型或數(shù)值型。9.4.5復(fù)選框(CheckBox)控件

Caption:用于指定顯示在復(fù)選框旁邊的標(biāo)題。Alignment:用于指定復(fù)選框是顯示在標(biāo)題右邊還是左邊。默認(rèn)情況下(Alignment屬性值為0),復(fù)選框顯示在標(biāo)題左邊。Value:用來指明復(fù)選框的當(dāng)前狀態(tài),該屬性的默認(rèn)值為0。該屬性可以是N,也可以是L。若沒有設(shè)置controlsource屬性,則可通過value屬性來設(shè)置或返回復(fù)選框的狀態(tài)。若controlsource屬性指定了字段或內(nèi)存變量,則value屬性總是與controlsource屬性指定的變量具有相同的值和類型。9.4.5復(fù)選框(CheckBox)控件Value屬性值屬性值說明0或.F.(默認(rèn)值),未被選中1或.T.被選中>=2或null不確定,只在代碼中有效9.4.5復(fù)選框(CheckBox)控件注意:復(fù)選框的不確定狀態(tài)只表明復(fù)選框的當(dāng)前狀態(tài)不屬于兩個正常狀態(tài)值中的一個,運行時用戶仍能對其進(jìn)行選擇操作,并使其變?yōu)榇_定狀態(tài)。在屏幕上,不確定狀態(tài)復(fù)選框呈灰色,標(biāo)題文本正常顯示。邏輯型數(shù)據(jù)一定要加定界符“.”。9.4.6列表框(ListBox)控件1.列表框的功能 列表框提供一組條目(數(shù)據(jù)項),用戶可以從中選擇一個或多個條目,一般情況下,列表框顯示其中的若干條目,用戶可以通過滾動條瀏覽其他條目。2.列表框的屬性RowSourceType屬性與RowSource屬性:RowSourceType屬性指明列表框數(shù)據(jù)源的類型,RowSource屬性指定列表框的數(shù)據(jù)源,兩者常用的搭配如表9.5所示。

9.4.6列表框(ListBox)控件RowSourceType屬性值RowSource屬性0-無:在程序運行時,通過AddItem方法添加列表框條目,通過RemoveItem方法移去列表框條目無1-值:列出在RowSource屬性中指定所有數(shù)據(jù)項可以是用逗號隔開的若干數(shù)據(jù)項的集合,例如,在設(shè)計時,在本屬性框中輸入:北京、上海、長沙5-數(shù)組:列出數(shù)組的所有元素使用一個已定義的數(shù)組名。6-字段:列出一個字段的所有值字段名7-文件:列出指定目錄的文件清單磁盤驅(qū)動器或文件目錄8-結(jié)構(gòu):列出數(shù)據(jù)表的結(jié)構(gòu)表名9.4.6列表框(ListBox)控件List:用以存取列表框中數(shù)據(jù)條目的字符串?dāng)?shù)組。例如,LIST[1]代表列表框中的第一行(第一個數(shù)據(jù)項)。ListCount:列表框中數(shù)據(jù)條目的數(shù)目

ColumnCount:指定列表框的列數(shù),即一個條目中包含的數(shù)據(jù)項數(shù)目。Value:返回列表框中被選中的條目。該屬性可以是字符型(默認(rèn)),也可以是數(shù)值型。對于列表框和組合框,該屬性只讀。9.4.6列表框(ListBox)控件ControlSource:該屬性在列表框中的用法與在其他控件中的用法有所不同,在這里,用戶可以通過該屬性指定一個字段或變量用以保存用戶從列表框中選擇的結(jié)果。Selected:指定列表框內(nèi)的某個條目是否處于選定狀態(tài),該屬性是一個邏輯型數(shù)組,第N個數(shù)組元素代表第N個數(shù)據(jù)項是否為選定狀態(tài)

MultiSelect:指定用戶能否在列表框控件內(nèi)進(jìn)行多重選定。

0或.F.:默認(rèn)值,不允許多重選擇

1或.T.:允許多重選擇,為選擇多個條目,按住Ctrl鍵并用鼠標(biāo)單擊條目。9.4.6列表框(ListBox)控件P173例9.69.4.7組合框(comboBox)控件組合框與列表框類似,也是用于提供一組條目供用戶從中選擇,組合框和和列表框的主要區(qū)別在于三點:對于組合框來說,通常只有一個條目是可見的。用戶可以單擊組合框上的下拉箭頭按鈕打開條目列表,以便從中選擇。組合框不提供多重選擇的功能,沒有MultiSelect屬性。組合框有兩種形式:下拉組合框(Style屬性為0)和下拉列表框(Style屬性為2)。對下拉組合框,用戶既可以從列表中選擇,也可以在編輯區(qū)輸入。對下拉列表框,用戶只可從列表中選擇。9.5容器型控件選擇容器中的某個控件,有兩種方法:從屬性窗口的對象下拉列表框中選擇容器中某個所需的控件;用鼠標(biāo)右鍵單擊容器,然后從彈出的菜單中選擇“編輯”命令,然后可通過鼠標(biāo)單擊來選擇容器中的某個控件。9.5.1命令按鈕組(CommandGroup)控件

1.命令按鈕組功能 命令按鈕組是包含一組命令按鈕的容器控件,用戶可以單個或作為一組來操作其中的按鈕。2.命令按鈕組常用屬性Buttoncount:命令按鈕組中命令按鈕的數(shù)目。默認(rèn)值為2,即包含2個命令按扭。也適用于選項按紐組。Buttons:用于存取命令按鈕組中每個命令按鈕的數(shù)組,代碼中可以通過該數(shù)組訪問命令按鈕組中的各個按鈕。屬性數(shù)組下標(biāo)的取值范圍應(yīng)該在1至buttoncount屬性值之間。9.5.1命令按鈕組(CommandGroup)控件Value:默認(rèn)情況下,命令按鈕組中的各個按鈕被自動賦予了一個編號,如1,2,3,等,當(dāng)運行表單時,一旦用戶單擊某個按鈕,則Value將保存該按鈕的編號,于是在程序中通過檢測Value的值,就可以為相應(yīng)的按鈕編寫特定的程序代碼。如果在設(shè)計時,給Value賦予一個字符型數(shù)據(jù),當(dāng)運行表單時,一旦用戶單擊某個按鈕,則Value將保存該按鈕的Caption屬性值。9.5.1命令按鈕組(CommandGroup)控件該屬性的類型可以是數(shù)值型(默認(rèn)),也可是字符型的。若為數(shù)值型N,則表示命令組中第N個命令按紐被選中;若為字符型C,則表示命令組中caption屬性值為C的命令按紐被選中。9.5.1命令按鈕組(CommandGroup)控件P175例9.79.5.2選項組(OptionGroup)控件

1.選項組控件的功能 選項組又稱為選項按鈕組,是包含選項按鈕的一種容器。一個選項組中往往包含若干個選項按鈕,但用戶只能從中選擇一個按鈕。當(dāng)用戶單擊某個選項按鈕時,該按鈕即成為被選中狀態(tài),而選項組中的其他選項按鈕,不管原來是什么狀態(tài),都變?yōu)槲催x中狀態(tài),被選中的選項按鈕中會顯示一個圓點。

9.5.2選項組(OptionGroup)控件2.選項組常用屬性ButtonCount:指定選項組中選項按鈕的數(shù)目,默認(rèn)值為2,即包含2個選項按扭。Value:用于指定選項組中哪個選項按鈕被選中。該屬性值的類型可以是N或C。ControlSource:指定選項組數(shù)據(jù)源。作為選項組數(shù)據(jù)源的字段變量或內(nèi)存變量,其類型可以是N或C。Buttons:用于存取選項組中每個選項的數(shù)組。9.5.2選項組(OptionGroup)控件P177例9.8、例9.99.5.3表格(Grid)控件1.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論