第七章 表單設(shè)計(jì)與應(yīng)用_第1頁(yè)
第七章 表單設(shè)計(jì)與應(yīng)用_第2頁(yè)
第七章 表單設(shè)計(jì)與應(yīng)用_第3頁(yè)
第七章 表單設(shè)計(jì)與應(yīng)用_第4頁(yè)
第七章 表單設(shè)計(jì)與應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第六章 表單設(shè)計(jì)與應(yīng)用表單(FORM)是VFP提供的用于建立應(yīng)用程序界面的最主要的工具之一。表單可以包含命令按鈕、文本框、列表框等各種界面元素,產(chǎn)生標(biāo)準(zhǔn)的窗口對(duì)話框。本章首先簡(jiǎn)單介紹面向?qū)ο蟮幕靖拍?,然后介紹表單的創(chuàng)建與管理、表單設(shè)計(jì)器環(huán)境及表單常用控件,最后介紹自定義類及應(yīng)用。6.1面向?qū)ο蟮母拍?對(duì)象(Object) 客觀世界里的任何實(shí)體都可以被看作是對(duì)象。對(duì)象可以是具體的物,也可以指某些概念。 從編程的角度來看,對(duì)象是一種將數(shù)據(jù)和操作過程結(jié)合在一起的數(shù)據(jù)結(jié)構(gòu),或者是一種具有屬性(數(shù)據(jù))和方法(過程和函數(shù))的集合體。事實(shí)上程序中的對(duì)象就是對(duì)客觀世界中對(duì)象的一種抽象描述(1)對(duì)象屬性:屬性

2、用來表示對(duì)象的狀態(tài)。(2)對(duì)象方法:對(duì)象方法是描述對(duì)象行為的過程。 2類類是對(duì)一類相似對(duì)象的性質(zhì)描述,這些對(duì)象具有相同種類的屬性以及方法 。6.1.2子類與繼承 在面向?qū)ο蟮姆椒ɡ?,繼承是指在基于現(xiàn)有的類創(chuàng)建新類時(shí),新類繼承了現(xiàn)有類里的方法和屬性。此外,可以為新類添加新的方法和屬性。我們把新類稱為現(xiàn)有類的子類,而把現(xiàn)有類稱為新類的父類。 一個(gè)子類的成員一般包括:(1)從其父類繼承的屬性和方法。(2)由子類自己定義的屬性和方法。 Visual FoxPro基類是系統(tǒng)本身內(nèi)含的,并不存放在某個(gè)類庫(kù)中。用戶可以基于基類生成所需要的對(duì)象,也可以擴(kuò)展基類創(chuàng)建自己的子類 在程序設(shè)計(jì)中,可以使用CREATE

3、OBJECT函數(shù)來直接生成基于某個(gè)類的對(duì)象。該函數(shù)的格式如下:CREATEOBJECT(,) 函數(shù)基于指定的類生成一個(gè)對(duì)象,并返回對(duì)象的引用 ActiveDoc活動(dòng)文檔Label標(biāo)簽CheckBox復(fù)選框Line線條Column(表格)列Listbox列表框Combobox組合框OlecontrolOLE控件commandButton命令按鈕OleboundcontrolOLE綁定控件Commandgroup命令按鈕組optionButton選項(xiàng)按鈕Container容器optionGroup選項(xiàng)組按鈕Control控件Page頁(yè)Cusion定制pageFrame頁(yè)框Editbox編輯框pro

4、jectHook項(xiàng)目掛鉤Form表單Separator分隔符Formset表單集Shape形狀Grid表格Spinner微調(diào)控件Header(列)標(biāo)頭Textbox文本框Hyperlink超級(jí)連接Timer定時(shí)器Image圖像toolBar工具欄對(duì)象屬性訪問以及對(duì)象方法調(diào)用的基本格式如下:.(參數(shù)列表)【例7-1】基于Visual FoxPro的FORM類生成一個(gè)對(duì)象,然后訪問該對(duì)象的一些屬性和方法。 Oform=CREATEOBJECT(Form) &生成一個(gè)空白表單Oform.show &顯示表單Oform.caption=”演示” &修改表單的標(biāo)題?”這是一個(gè)生成對(duì)象的演示程序” &在表

5、單上輸出字符串Oform.release7.2.2 容器與控件Visual FoxPro 中的類一般可分為兩種類型:容器類和控件類。相應(yīng)地,可分別生成容器(對(duì)象)和控件(對(duì)象)。 容器可以被認(rèn)為是一種特殊的控件,它能包容其他的控件或容器 控件是一個(gè)可以以圖形化的方式顯示出來,并能與用戶進(jìn)行交互的對(duì)象,控件類不能包含其它對(duì)象 (1)絕對(duì)引用:從最高容器開始逐層向下直到某個(gè)對(duì)象為止的引用稱為絕對(duì)引用 (2)相對(duì)引用:從正在為編寫事件代碼的對(duì)象出發(fā),通過逐層向高一層或低一層直到另一對(duì)象的引用稱為相對(duì)引用 使用相對(duì)引用常用到表7-2所列屬性或關(guān)鍵字 7.2.3 事件 事件是一種由系統(tǒng)預(yù)先定義而由用戶或

6、系統(tǒng)發(fā)出的動(dòng)作。事件作用于對(duì)象,對(duì)象識(shí)別事件并作出相應(yīng)反應(yīng) 與方法集可以無限擴(kuò)展不同,事件集是固定的,用戶不能定義新的事件 注:在VFP環(huán)境中不管哪個(gè)基類,都包含的事件稱為最小事件。VFP基類的最小事件集事件說明INIT對(duì)象生成時(shí)引發(fā)DESTROY對(duì)象從內(nèi)存中釋放時(shí)引發(fā)ERROR當(dāng)對(duì)象或事件代碼出現(xiàn)錯(cuò)誤時(shí)引發(fā)Visual FoxPro 中的類一般可分為兩種類型:容器類和控件類。相應(yīng)地,可分別生成容器(對(duì)象)和控件(對(duì)象)。 容器可以被認(rèn)為是一種特殊的控件,它能包容其他的控件或容器 控件是一個(gè)可以以圖形化的方式顯示出來,并能與用戶進(jìn)行交互的對(duì)象,控件類不能包含其它對(duì)象VFP常用容器類控件及其所能

7、包容的對(duì)象容器能包容的對(duì)象表單集fromset表單工具欄表單任意控件及頁(yè)框、Container對(duì)象、命令按鈕組、選項(xiàng)按鈕組、表格表格列列標(biāo)頭和除表單集、表單、工具欄、定時(shí)器及其他列之外的任意對(duì)象頁(yè)框頁(yè)頁(yè)任意控件及Container對(duì)象、命令按鈕組、選項(xiàng)按鈕組、表格命令按鈕組命令按鈕選項(xiàng)按鈕組選項(xiàng)按鈕Container對(duì)象任意控件、命令按鈕組、選項(xiàng)按鈕組、表格命令按鈕 (1)絕對(duì)引用:從最高容器開始逐層向下直到某個(gè)對(duì)象為止的引用稱為絕對(duì)引用 (2)相對(duì)引用:從正在為編寫事件代碼的對(duì)象出發(fā),通過逐層向高一層或低一層直到另一對(duì)象的引用稱為相對(duì)引用 使用相對(duì)引用常用到表7-2所列屬性或關(guān)鍵字 【例】如

8、果Form1中有一個(gè)命令按鈕組commandgroup1,該命令按鈕組有兩個(gè)命令按鈕:command1 和command2,label1是表單form1上的一個(gè)標(biāo)簽控件。如果要在命令按鈕command1的事件(如單擊事件)代碼中修改該按鈕的標(biāo)題可用下列命令:this.caption=”確定” 如果要在命令按鈕command1的事件代碼中修改命令按鈕command2的標(biāo)題可用下列命令:thisform.Cmand2.caption=取消或者mand2.caption=取消但不能寫成下列命令:mand2. cap

9、tion=取消如果要在命令按鈕command1的事件代碼中修改表單的標(biāo)題可用下列命令:This.Parent.parent.Caption=”測(cè)試窗口”或者thisform.caption=”測(cè)試窗口”屬性或關(guān)鍵字引用Parent當(dāng)前對(duì)象的直接容器對(duì)象This當(dāng)前對(duì)象ThisForm當(dāng)前對(duì)象所在的表單ThisFormSet當(dāng)前對(duì)象所在的表單集事件是一種由系統(tǒng)預(yù)先定義而由用戶或系統(tǒng)發(fā)出的動(dòng)作。事件作用于對(duì)象,對(duì)象識(shí)別事件并作出相應(yīng)反應(yīng) Visual FoxPro中常用事件有:與方法集可以無限擴(kuò)展不同,事件集是固定的,用戶不能定義新的事件 Load:當(dāng)表單或表單集被加載到內(nèi)存中時(shí)發(fā)生的事件。Unl

10、oad:從內(nèi)存中釋放表單或表單集時(shí)發(fā)生的事件。Init:創(chuàng)建對(duì)象時(shí)發(fā)生的事件。Destroy:從內(nèi)存中釋放對(duì)象時(shí)發(fā)生的事件。Click:鼠標(biāo)左鍵單擊對(duì)象時(shí)發(fā)生的事件。Dbclick: 鼠標(biāo)左鍵雙擊對(duì)象時(shí)發(fā)生的事件。Rightclick:鼠標(biāo)右鍵單擊對(duì)象時(shí)發(fā)生的事件。GotFocus:對(duì)象接收到焦點(diǎn)時(shí)發(fā)生的事件。LostFocus:對(duì)象失去焦點(diǎn)時(shí)發(fā)生的事件。KeyPress:當(dāng)用戶按下或釋放鍵時(shí)發(fā)生的事件。InteractiveChange:以交互方式改變對(duì)象的值時(shí)發(fā)生的事件。ProgrammaticChange:以編程方式改變對(duì)象的值時(shí)發(fā)生的事件。 7.3建立與運(yùn)行表單 表單(Form)是Vi

11、sual FoxPro提供的用于建立應(yīng)用程序界面的最主要的工具之一。表單相當(dāng)于WINDOWS應(yīng)用程序的窗口 表單可以屬于某個(gè)項(xiàng)目,也可以游離于任何項(xiàng)目之外,它是一個(gè)特殊的磁盤文件,其擴(kuò)展名為.scx。在項(xiàng)目管理器中創(chuàng)建的表單自動(dòng)隸屬于該項(xiàng)目。創(chuàng)建表單一般有兩種途徑: 使用表單向?qū)?chuàng)建簡(jiǎn)易的數(shù)據(jù)表單; 使用表單設(shè)計(jì)器創(chuàng)建或修改任何形式的表單。 啟動(dòng)表單設(shè)計(jì)器有多種方法: 菜單方法:若是新建表單,在系統(tǒng) 菜單中選擇【文件】|【新建】,在文件類型對(duì)話框中選擇“表單”,單擊“新建文件”按鈕;若是修改表單,則單擊【文件】|【打開】,在打開對(duì)話框中選擇要修改的表單文件名,單擊“打開”按鈕。 命令方法:在C

12、OMMAND窗口輸入如下命令: CREATE FORM &創(chuàng)建新的表單或 MODIFY FORM &打開一個(gè)已有的表單 在項(xiàng)目管理器中,先選擇文檔標(biāo)簽,然后選擇表單,單擊新建按鈕。若是修改表單,選擇要修改的表單,單擊“修改”按鈕。 7.4表單設(shè)計(jì)器環(huán)境介紹 (1)設(shè)計(jì)器窗口 “表單設(shè)計(jì)器”窗口內(nèi)包含正在設(shè)計(jì)的表單。用戶可在表單窗口中可視化地添加和修改控件、改變控件布局,表單窗口只能在“表單設(shè)計(jì)器”窗口內(nèi)移動(dòng)。以新建方式啟動(dòng)表單設(shè)計(jì)器時(shí),系統(tǒng)將默認(rèn)為用戶創(chuàng)建一個(gè)空白表單,如圖左側(cè)部分(2)屬性窗口設(shè)計(jì)表單的絕大多數(shù)工作都是在屬性窗口中完成的,因此用戶必須熟悉屬性窗口的用法。如果在表單設(shè)計(jì)器中沒有

13、出現(xiàn)屬性窗口,可在系統(tǒng)菜單中單擊【顯示】|【屬性】,屬性窗口如圖所示。(3)表單控件工具欄 設(shè)計(jì)表單的主要任務(wù)就是利用“表單控件”設(shè)計(jì)交互式用戶界面?!氨韱慰丶惫ぞ邫谑潜韱卧O(shè)計(jì)的主要工具。默認(rèn)包含21個(gè)控件、4個(gè)輔助按鈕,如圖所示 (3)表單控件工具欄 設(shè)計(jì)表單的主要任務(wù)就是利用“表單控件”設(shè)計(jì)交互式用戶界面。“表單控件”工具欄是表單設(shè)計(jì)的主要工具。默認(rèn)包含21個(gè)控件、4個(gè)輔助按鈕,如圖所示 (3)表單控件工具欄 設(shè)計(jì)表單的主要任務(wù)就是利用“表單控件”設(shè)計(jì)交互式用戶界面?!氨韱慰丶惫ぞ邫谑潜韱卧O(shè)計(jì)的主要工具。默認(rèn)包含21個(gè)控件、4個(gè)輔助按鈕,如圖所示 (4)表單設(shè)計(jì)器工具欄 打開“表單設(shè)計(jì)

14、器”時(shí),主窗口中會(huì)自動(dòng)出現(xiàn)“表單設(shè)計(jì)器”工具欄,如圖7-10所示 (4)表單設(shè)計(jì)器工具欄打開“表單設(shè)計(jì)器”時(shí),主窗口中會(huì)自動(dòng)出現(xiàn)“表單設(shè)計(jì)器”工具欄,如圖7-10所示 7.4.2控件的操作與布局1、控件的基本操作(1)選定控件:用鼠標(biāo)單擊控件可以選定該控件,被選定的控件四周出現(xiàn)八個(gè)控點(diǎn),如果選擇多個(gè)控件可以按住SHIFT鍵的同時(shí),依次單擊各個(gè)控件??丶贿x中后可以對(duì)其進(jìn)行移動(dòng)、復(fù)制、刪除布局等操作,也可以設(shè)置TAB鍵次序。(2)移動(dòng)控件:選定控件,然后用鼠標(biāo)將控件拖到到需要的位置,如果在拖動(dòng)鼠標(biāo)的同時(shí)按住CTRL鍵,可以使鼠標(biāo)的移動(dòng)步長(zhǎng)減小。(3)調(diào)整控件大?。哼x定控件然后拖動(dòng)控件四周的控點(diǎn)可

15、以改變控件的寬度和高度,也可以按住SHIFT鍵的同時(shí)按方向鍵也能改變?cè)摽丶拇笮 ?、控件的布局利用“布局”工具欄按鈕可以方便的調(diào)整表單窗口中被選控件的相對(duì)大小和位置。3、設(shè)置TAB鍵次序當(dāng)表單運(yùn)行時(shí),用戶可以按TAB鍵選擇表單中的控件,使焦點(diǎn)在控件間移動(dòng)。控件的TAB次序決定了選擇控件的次序。VFP提供交互方式和列表方式。方法1:選擇菜單【工具】 【選項(xiàng)】 【表單】 【TAB次序】選擇“交互”菜單【顯示】 【TAB次序】此時(shí),控件左上方出現(xiàn)深藍(lán)色小方塊,稱為TAB鍵次序盒,里面顯示該控件的TAB鍵次序號(hào)碼。雙擊某個(gè)控件的TAB鍵次序,該控件將稱為TAB鍵次序中的第一個(gè)控件。按希望的次序依次單

16、擊其他控件的TAB鍵次序盒。方法2:選擇菜單【工具】 【選項(xiàng)】 【表單】 【TAB次序】選擇“列表”菜單【顯示】 【TAB次序】 通過拖動(dòng)控件左側(cè)的移動(dòng)按鈕移動(dòng)控件,改變控件的TAB鍵次序。7.4.3 數(shù)據(jù)環(huán)境1打開數(shù)據(jù)環(huán)境設(shè)計(jì)器表單設(shè)計(jì)器環(huán)境下,單擊“表單設(shè)計(jì)器”工具欄上的“數(shù)據(jù)環(huán)境”按鈕,或選擇【顯示】|【數(shù)據(jù)環(huán)境】命令,即可打開“數(shù)據(jù)環(huán)境設(shè)計(jì)器”窗口,此時(shí),系統(tǒng)菜單欄上將出現(xiàn)“數(shù)據(jù)環(huán)境”菜單。2數(shù)據(jù)環(huán)境的常用屬性常用的兩個(gè)數(shù)據(jù)環(huán)境屬性是AutoOpenTables和AutoCloseTables 屬性名含義默認(rèn)值A(chǔ)utoOpenTables運(yùn)行或打開表單時(shí),是否打開數(shù)據(jù)環(huán)境中的表和視圖.

17、T.AutoCloseTables運(yùn)行或打開表單時(shí),是否關(guān)閉數(shù)據(jù)環(huán)境中的表和視圖.T.3打開數(shù)據(jù)環(huán)境設(shè)計(jì)器在表單設(shè)計(jì)器環(huán)境下,單擊“表單設(shè)計(jì)器”工具欄上的“數(shù)據(jù)環(huán)境”按鈕,或選擇【顯示】|【數(shù)據(jù)環(huán)境】命令,即可打開“數(shù)據(jù)環(huán)境設(shè)計(jì)器”窗口,也可以打開表單單擊鼠標(biāo)右鍵快捷菜單【數(shù)據(jù)環(huán)境】。3向數(shù)據(jù)環(huán)境添加表或視圖在數(shù)據(jù)環(huán)境設(shè)計(jì)器環(huán)境下,按下列方法向數(shù)據(jù)環(huán)境添加表或視圖: 在系統(tǒng)菜單中選擇【數(shù)據(jù)環(huán)境】|【添加】命令,或右鍵單擊“數(shù)據(jù)環(huán)境設(shè)計(jì)器窗口”,然后在彈出的快捷菜單中選擇【添加】命令,打開“添加表或視圖”對(duì)話框,如圖所示。如果數(shù)據(jù)環(huán)境原來是空的,那么在打開數(shù)據(jù)環(huán)境設(shè)計(jì)器時(shí),該對(duì)話框就會(huì)自動(dòng)出現(xiàn)。

18、4從數(shù)據(jù)環(huán)境中移去表或視圖在“數(shù)據(jù)環(huán)境設(shè)計(jì)器”窗口中,選擇要移去的表或視圖,在系統(tǒng)菜單中選擇【數(shù)據(jù)環(huán)境】|【移去】命令。也可以用鼠標(biāo)右鍵單擊要移去的表或視圖,然后在彈出的快捷菜單中選擇【移去】命令。5在數(shù)據(jù)環(huán)境中設(shè)置關(guān)系設(shè)置關(guān)系的方法為:將主表的某個(gè)字段(作為關(guān)聯(lián)表達(dá)式)拖曳到子表的相匹配的索引標(biāo)記上既可。如果子表上沒有與主表字段相匹配的索引,也可以將主表字段拖動(dòng)到子表的某個(gè)字段上,這時(shí)應(yīng)根據(jù)系統(tǒng)提示確認(rèn)創(chuàng)建索引常用的關(guān)系屬性有: RelationalExpr:用于指定基于主表的關(guān)聯(lián)表達(dá)式。 ParentAlias:用于指明主表的別名。 ChildAlias:用于指明子表的別名。 ChildO

19、rder:用于指定與關(guān)聯(lián)表達(dá)式相匹配的索引。 OneToMany:用于指明關(guān)系是否為一對(duì)多關(guān)系,該屬性默認(rèn)為“.F.”,如果關(guān)系為“一對(duì)多關(guān)系”,該屬性一定要設(shè)置為“.T.”。 7.向表單添加字段表單控件可以顯示或修改表中的數(shù)據(jù),要將表中的數(shù)據(jù)在文本框中顯示,有兩種方法可以實(shí)現(xiàn)。方法1:利用“表單控件”工具欄將一個(gè)文本框控件放置在表單里,然后通過該文本框的controsourec屬性將表中的某一字段進(jìn)行綁定。選擇“文本框”單擊右鍵“屬性”在屬性面板中選擇controlSource并輸入字段名但必須跟表面如cj11.學(xué)號(hào)注:所要添加的字段所對(duì)應(yīng)的表必須打開。方法2:從數(shù)據(jù)環(huán)境設(shè)計(jì)器中直接將字段拖

20、入表單。在表單設(shè)計(jì)器中單擊鼠標(biāo)右鍵選擇“數(shù)據(jù)環(huán)境”彈出數(shù)據(jù)環(huán)境設(shè)計(jì)器,單擊鼠標(biāo)右鍵添加表,選擇表中的某一字段直接拖放到表單的合適位置。默認(rèn)情況下,如果拖動(dòng)的字段是邏輯型字段則產(chǎn)生復(fù)選框控件,如果拖動(dòng)的是備注型字段,將產(chǎn)生編輯框控件;如果拖動(dòng)的是表或視圖,將產(chǎn)生表格控件。7.5表單屬性和方法這里介紹表單的屬性和方法也是表單的重點(diǎn)。7.5.1常用的表單屬性表單的屬性大約有100個(gè),但是絕大多數(shù)很少用到。表列出了常用的一些表單屬性。屬性描述默認(rèn)值A(chǔ)lwaysOnTop指定表單是否位于其他打開窗口之上AutoCenter指定表單初始化時(shí)是否自動(dòng)在VFP主窗口內(nèi)居中顯示BackColor指明表單窗口的顏

21、色BorderStyle指定表單邊框的風(fēng)格Caption指明顯示于表單標(biāo)題欄上的文本Closeble指明表單是否可以通過單擊關(guān)閉按鈕或雙擊菜單控制菜單框來關(guān)閉窗口Datasession指定表單里的表是在缺省的全局工作區(qū)打開(設(shè)置為1)還是在表單自己的私有工作區(qū)打開(設(shè)置值為2)Maxbutton確定表單是否有最大化按鈕Minbutton確定表單是否有最小化按鈕Movable確定表單是否可以移動(dòng)Scrollbars指定表單的滾動(dòng)條類型,可取值為0(無)1(水平)2(垂直)3(既水平又垂直)WindowState指明表單的狀態(tài):0(正常)1(最小化)2(最大化)WindowType指定表單是模式表

22、單(設(shè)置值為1)還是非模式表單(設(shè)置值為0)。在一個(gè)應(yīng)用程序中,如果運(yùn)行了一個(gè)模式表單,那么在關(guān)閉該表單之前不能訪問應(yīng)用程序中的其他界面元素。方法:方法(程序)是對(duì)象能夠執(zhí)行的一個(gè)操作,在VFP中系統(tǒng)提供了一些方法,其程序是一些默認(rèn)過程。在全國(guó)計(jì)算機(jī)等級(jí)考試主要涉及一下方法方法描述默認(rèn)值Show顯示表單.T.Hide隱藏表單.F.Release將表單從內(nèi)存釋放(清除)默認(rèn)過程Refresh重新繪制表單或控件,并刷新它的值默認(rèn)過程setfocus讓對(duì)象獲取焦點(diǎn),使其成為活動(dòng)對(duì)象默認(rèn)過程7.6添加新的屬性和方法1、向表單添加新的屬性的步驟如下:(1) 使表單處于編輯狀態(tài)(打開)選擇菜單【表單】|【

23、新建屬性】打開“新建屬性”對(duì)話框如圖所示(2)在“名稱”對(duì)話框中輸入屬性名稱點(diǎn)擊添加。2、向表單添加新的方法的步驟如下:(1)使表單處于編輯狀態(tài)(打開)選擇菜單【表單】|【新建方法程序】打開“新建方法程序”對(duì)話框如圖所示(2)在“名稱”對(duì)話框中輸入方法名稱點(diǎn)擊添加。3 編輯方法或事件代碼(1)選擇菜單【顯示】|【代碼】命令,打開代碼編輯器,如圖所示:(2)從“對(duì)象”對(duì)話框中方法或事件所屬的對(duì)象(表單或表單控件)。(3)從“過程”對(duì)話框中指定需要編輯的方法或事件。(4)在編輯區(qū)輸入或修改方法或事件代碼。7.6常用表單控件表單作為容器、作為應(yīng)用程序的用戶界面,一般會(huì)包含一些控件,以實(shí)現(xiàn)特定的交互功

24、能。要很好的使用和設(shè)計(jì)控件,需要掌握一些控件的屬性、方法和事件。下面介紹一些常用控件的屬性方法和事件以及使用方法。常用控件的公共屬性name:控件的名稱,它是代碼中訪問控件的標(biāo)識(shí)(表單或表單集除外)。Fontname:字體名。Fontbold:字體樣式為粗體。Fontsize:字體大小。Fontitalic:字體樣式為斜體。Forecolor:前景色。Height:控件的高度Width:控件的寬度。控件的高度和控件的寬度,也可在設(shè)計(jì)時(shí)通過鼠標(biāo)拖曳進(jìn)行可視化調(diào)整。Visible:控件是否顯示。Enable:控件運(yùn)行時(shí)是否有效。如果為 .T.,則表示控件有效,否則運(yùn)行時(shí)控件不可使用。7.6.1標(biāo)簽

25、1標(biāo)簽控件的功能標(biāo)簽主要用于顯示固定的文本信息。 2標(biāo)簽控件常用屬性caption: 指定標(biāo)簽的顯示文本。可以在設(shè)計(jì)時(shí)設(shè)置,也可以在程序運(yùn)時(shí)設(shè)置或修改。autosise:autosise如果為真,標(biāo)簽在表單中的大小由caption屬性中的文本長(zhǎng)度決定,否則其大小由WIDTH和HEIGHT屬性決定。forecolor:設(shè)置標(biāo)題的字體顏色。backstyle:設(shè)置標(biāo)簽的背景是否透明,0透明,1不透明,默認(rèn)為不透明。name :標(biāo)簽對(duì)象的名稱,是程序中訪問標(biāo)簽對(duì)象的標(biāo)識(shí)。 7.6.2文本框(TextBox)控件1文本框控件的功能:(1)用于顯示或接收單行文本信息(不設(shè)置ControlSource屬性

26、),默認(rèn)輸入類型為字符型,最大長(zhǎng)度為256個(gè)字符。(2)用于顯示或編輯對(duì)應(yīng)變量或字段的值(設(shè)置ControlSource屬性為已有變量或字段名)。2文本框控件常用屬性ControlSource:設(shè)置文本框的數(shù)據(jù)來源。一般情況下,可以利用該屬性為文本框指定一個(gè)字段或內(nèi)存變量。Value:保存文本框的當(dāng)前內(nèi)容,如果沒有為ControlSource屬性指定數(shù)據(jù)源,可以通過該屬性訪問文本框的內(nèi)容。它的初值決定文本框中值的類型。如果為ControlSource屬性指定了數(shù)據(jù)源,該屬性值與ControlSource屬性指定的變量或字段的值相同。PassWordChar:設(shè)置輸入口令時(shí)顯示的字符。Reado

27、nly:確定文本框是否為只讀,為“.T.”時(shí),文本框的值不可修改。7.6.3命令按鈕(CommandButton)控件命令按鈕典型地用來啟動(dòng)某個(gè)事件代碼、完成特定功能,如關(guān)閉表單、移動(dòng)記錄指針、打印報(bào)表等。2命令按鈕控件常用屬性 Default:命令按鈕的Default屬性默認(rèn)值為.F.,如果該屬性設(shè)置為.T.,在該按鈕所在的表單激活的情況下,按Enter,可以激活該按鈕,并執(zhí)行該按鈕的Click事件代碼。一個(gè)表單只能有一個(gè)按鈕的Default屬性為真。Cancel:命令按鈕的Cancel屬性默認(rèn)值為.F.,如果設(shè)置為.T.,在該按鈕所在的表單激活的情況下,按Esc鍵可以激活該按鈕,并執(zhí)行該按

28、鈕的Click事件代碼。一個(gè)表單只能有一個(gè)按鈕的Cancel 屬性為真。Caption:設(shè)置按鈕的標(biāo)題。Enable:確定按鈕是否有效,如果按鈕的屬性Enable為.F.,單擊該按鈕不會(huì)引發(fā)該按鈕的單擊事件。對(duì)命令按鈕的使用最重要的是編寫Click事件代碼。 【例】創(chuàng)建一個(gè)如圖7-14所示的登錄窗口,并將表單保存為FORM2。在確定按鈕的單擊事件中輸入如下代碼:if thisform.text1.value=user1“ and thisform.text2.value=do form mainform form2.releaseelsemessagebox(密碼或用戶名錯(cuò)誤,0,提示)end

29、if在取消按鈕的單擊事件中輸入如下代碼:nAnswer=messagebox(你決定退出系統(tǒng)嗎?,4,提示)DO CASE CASE nAnswer = 6 thisform.release CASE nAnswer = 7messagebox(請(qǐng)輸入用戶名和密碼,0,提示) ENDCASE7.6.4命令按鈕組(CommandGroup)控件命令按鈕組是包含一組命令按鈕的容器控件,用戶可以單個(gè)或作為一組來操作其中的按鈕。 2命令按鈕組常用屬性Buttoncount:命令按鈕組中命令按鈕的數(shù)目。Value:默認(rèn)情況下,命令按鈕組中的各個(gè)按鈕被自動(dòng)賦予了一個(gè)編號(hào),如1,2,3,等,當(dāng)運(yùn)行表單時(shí),一

30、旦用戶單擊某個(gè)按鈕,則Value將保存該按鈕的編號(hào),于是在程序中通過檢測(cè)Value的值,就可以為相應(yīng)的按鈕編寫特定的程序代碼。如果在設(shè)計(jì)時(shí),給Value賦予一個(gè)字符型數(shù)據(jù),當(dāng)運(yùn)行表單時(shí),一旦用戶單擊某個(gè)按鈕,則Value將保存該按鈕的Caption屬性值。Buttons:用于存取命令按鈕組中每個(gè)命令按鈕的數(shù)組,代碼中可以通過該數(shù)組訪問命令按鈕組中的各個(gè)按鈕.7.5.6 編輯框(EditBox)控件 1編輯框控件的功能 用于顯示或編輯多行文本信息。編輯框?qū)嶋H上是一個(gè)完整的簡(jiǎn)單字處理器,在編輯框中能夠選擇、剪切、粘貼以及復(fù)制正文,可以實(shí)現(xiàn)自動(dòng)換行,能夠有自己的垂直滾動(dòng)條。 2編輯框常用屬性Cont

31、rolSource:設(shè)置編輯框的數(shù)據(jù)源,一般為數(shù)據(jù)表的備注字段。Value:保存編輯框中的內(nèi)容,可以通過該屬性來訪問編輯框中的內(nèi)容。SelText:返回用戶在編輯區(qū)內(nèi)選定的文本,如果沒有選定任何文本,則返回空串。SelLength:返回用戶在文本輸入?yún)^(qū)中所選定字符的數(shù)目。Readonly:確定用戶是否能修改編輯框中的內(nèi)容。 Scroolbars:指定編輯框是否具有滾動(dòng)條,當(dāng)屬性值為時(shí),編輯框沒有滾動(dòng)條,當(dāng)屬性值為(默認(rèn)值)時(shí),編輯框包含垂直滾動(dòng)條。 7.5.7 復(fù)選框(CheckBox)控件1復(fù)選框的功能 用于標(biāo)識(shí)一個(gè)兩值狀態(tài),如真(.t.)或假(.f.)。當(dāng)處于“真”狀態(tài)時(shí),復(fù)選框內(nèi)顯示一個(gè)

32、對(duì)勾,當(dāng)處于“假”狀態(tài)時(shí)復(fù)選框內(nèi)為空白。 2復(fù)選框常用屬性Value:用來指明復(fù)選框的當(dāng)前狀態(tài),如下表 ControlSource屬性:用于指定復(fù)選框的數(shù)據(jù)源 屬性值說明0或.F.(默認(rèn)值),未被選中1或.T.被選中2或.NULL.不確定,只在代碼中有效7.5.8 選項(xiàng)組(OptionGroup)控件 1選項(xiàng)組控件的功能 選項(xiàng)組又稱為選項(xiàng)按鈕組,是包含選項(xiàng)按鈕的一種容器。一個(gè)選項(xiàng)組中往往包含若干個(gè)選項(xiàng)按鈕,但用戶只能從中選擇一個(gè)按鈕。當(dāng)用戶單擊某個(gè)選項(xiàng)按鈕時(shí),該按鈕即成為被選中狀態(tài),而選項(xiàng)組中的其他選項(xiàng)按鈕,不管原來是什么狀態(tài),都變?yōu)槲催x中狀態(tài),被選中的選項(xiàng)按鈕中會(huì)顯示一個(gè)圓點(diǎn)。 2選項(xiàng)組常用

33、屬性 ButtonCount:指定選項(xiàng)組中選項(xiàng)按鈕的數(shù)目。 Value:用于指定選項(xiàng)組中哪個(gè)選項(xiàng)按鈕被選中。ControlSource:指定選項(xiàng)組數(shù)據(jù)源。 Buttons:用于存取選項(xiàng)組中每個(gè)選項(xiàng)的數(shù)組?!纠棵畎粹o組、選項(xiàng)組、復(fù)選框、編輯框應(yīng)用示例,按如圖7-17設(shè)計(jì)一個(gè)表單,要求:用戶單擊確定按鈕時(shí),在編輯框中顯示用戶對(duì)選項(xiàng)組和復(fù)選框的選擇。并將表單保存為FORM3編寫事件代碼選擇命令按鈕組,在屬性窗口中雙擊“CLICK EVENT”屬性,系統(tǒng)會(huì)打開代碼編寫器,在代碼編寫器窗口為“CLICK EVENT”事件輸入如下代碼:if mandgroup1.value=2

34、thisform.releaseelsecstr=你所在城市+chr(13);+thisform.optiongroup1.buttonsthisform.optiongroup1.value.caption+chr(13)cstr=cstr+你的愛好+chr(13)if thisform.check1.value=1cstr=cstr+thisform.check1.captionendifif thisform.check2.value=1cstr=cstr+thisform.check2.captionendifif thisform.check3.value=1cstr=cstr+th

35、isform.check3.captionendifthisform.edit1.value=cstrendif7.5.9 列表框(ListBox)控件 1列表框的功能 列表框提供一組條目(數(shù)據(jù)項(xiàng)),用戶可以從中選擇一個(gè)或多個(gè)條目,一般情況下,列表框顯示其中的若干條目,用戶可以通過滾動(dòng)條瀏覽其他條目。 2選項(xiàng)組常用屬性 :RowSourceType屬性與RowSource屬性:RowSourceType屬性指明列表框數(shù)據(jù)源的類型,RowSource屬性指定列表框的數(shù)據(jù)源 ,兩者常用的搭配如表 RowSourceType屬性值RowSource屬性描述0無(默認(rèn)值)在程序運(yùn)行時(shí)通過AddItem

36、方法添加列表框條目,通過RemoveItem方法移去列表框。1值RowSource=”北京,上海,天津”通過RowSource屬性手工指定具體的列表框條目如RowSource=”北京,上海,天津”2別名Cj11將表中的字段作為列表框的條目。ColumnCount屬性指定要取的字段數(shù)目,也就是列表框的列數(shù)。指定的字段總是表中最前面的若干個(gè)字段。3查詢(.qpr)RowSource=”xx.qpr”將.qpr文件執(zhí)行產(chǎn)生的結(jié)果作為列表框的數(shù)據(jù)源4SQL語句RowSource=”select * from cj11 into cursor temp”將. SQL語句執(zhí)行產(chǎn)生的結(jié)果作為列表框的數(shù)據(jù)源5

37、數(shù)組Diem stu(4)Store 50 to stuRowSource=stu將數(shù)組的內(nèi)容作為列表框條目的數(shù)據(jù)源6字段RowSource= cj11.學(xué)號(hào),姓名,班級(jí),總分將表的一個(gè)或幾個(gè)字段作為列表框條目的數(shù)據(jù)源。與RowsourceType =2不同,這里可以指定所需要的字段。7文件RowSource=*.dbf將某個(gè)驅(qū)動(dòng)器的目錄下的文件名作為列表框數(shù)目條的數(shù)據(jù)來源。8結(jié)構(gòu)RowSource=stu將指定表的字段名作為列表框的條目,由RowSourc屬性指定表,若RowSource屬性值為空,則列表框顯示當(dāng)前表中的字段清單。List屬性:用以存取列表框中數(shù)據(jù)條目的字符串?dāng)?shù)組。例如,LI

38、ST1代表列表框中的第一行(第一個(gè)數(shù)據(jù)項(xiàng))。 ListCount屬性:列表框中數(shù)據(jù)條目的數(shù)目 ColumnCount屬性:指定列表框的列數(shù) Value屬性:返回列表框中被選中的條目 ControlSource屬性:該屬性在列表框中的用法與在其他控件中的用法有所不同,在這里,用戶可以通過該屬性指定一個(gè)字段或變量用以保存用戶從列表框中選擇的結(jié)果 Selected屬性:該屬性是一個(gè)邏輯型數(shù)組,第N個(gè)數(shù)組元素代表第N個(gè)數(shù)據(jù)項(xiàng)是否為選定狀態(tài) MultiSelect屬性:指定用戶能否在列表框控件內(nèi)進(jìn)行多重選定 7.5.10 組合框(comboBox)控件 組合框與列表框類似,也是用于提供一組條目供用戶從中選擇,組合框和和列表框的主要區(qū)別在于:(1)對(duì)于組合框來說,通常只有一個(gè)條目是可見的。用戶可以單擊組合框上的下拉箭頭按鈕打開條目列表,以便從中選擇。(2)組合框不提供多重選擇的功能,沒有MultiSelect屬性。 (3)組合框有兩種形式:下拉組合框(Style屬性為0)和下拉列表框(Style屬性為2)。對(duì)下拉組合框,用戶既可以從列表中選

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論