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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

8、果Form1中有一個命令按鈕組commandgroup1,該命令按鈕組有兩個命令按鈕:command1 和command2,label1是表單form1上的一個標(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=”測試窗口”或者thisform.caption=”測試窗口”屬性或關(guān)鍵字引用Parent當(dāng)前對象的直接容器對象This當(dāng)前對象ThisForm當(dāng)前對象所在的表單ThisFormSet當(dāng)前對象所在的表單集事件是一種由系統(tǒng)預(yù)先定義而由用戶或系統(tǒng)發(fā)出的動作。事件作用于對象,對象識別事件并作出相應(yīng)反應(yīng) Visual FoxPro中常用事件有:與方法集可以無限擴(kuò)展不同,事件集是固定的,用戶不能定義新的事件 Load:當(dāng)表單或表單集被加載到內(nèi)存中時發(fā)生的事件。Unl

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

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

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

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

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

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

16、擊其他控件的TAB鍵次序盒。方法2:選擇菜單【工具】 【選項】 【表單】 【TAB次序】選擇“列表”菜單【顯示】 【TAB次序】 通過拖動控件左側(cè)的移動按鈕移動控件,改變控件的TAB鍵次序。7.4.3 數(shù)據(jù)環(huán)境1打開數(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)境”菜單。2數(shù)據(jù)環(huán)境的常用屬性常用的兩個數(shù)據(jù)環(huán)境屬性是AutoOpenTables和AutoCloseTables 屬性名含義默認(rèn)值A(chǔ)utoOpenTables運行或打開表單時,是否打開數(shù)據(jù)環(huán)境中的表和視圖.

17、T.AutoCloseTables運行或打開表單時,是否關(guān)閉數(shù)據(jù)環(huán)境中的表和視圖.T.3打開數(shù)據(jù)環(huán)境設(shè)計器在表單設(shè)計器環(huán)境下,單擊“表單設(shè)計器”工具欄上的“數(shù)據(jù)環(huán)境”按鈕,或選擇【顯示】|【數(shù)據(jù)環(huán)境】命令,即可打開“數(shù)據(jù)環(huán)境設(shè)計器”窗口,也可以打開表單單擊鼠標(biāo)右鍵快捷菜單【數(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)。

18、4從數(shù)據(jù)環(huán)境中移去表或視圖在“數(shù)據(jù)環(huán)境設(shè)計器”窗口中,選擇要移去的表或視圖,在系統(tǒng)菜單中選擇【數(shù)據(jù)環(huán)境】|【移去】命令。也可以用鼠標(biāo)右鍵單擊要移去的表或視圖,然后在彈出的快捷菜單中選擇【移去】命令。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)建索引常用的關(guān)系屬性有: RelationalExpr:用于指定基于主表的關(guān)聯(lián)表達(dá)式。 ParentAlias:用于指明主表的別名。 ChildAlias:用于指明子表的別名。 ChildO

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

20、入表單。在表單設(shè)計器中單擊鼠標(biāo)右鍵選擇“數(shù)據(jù)環(huán)境”彈出數(shù)據(jù)環(huán)境設(shè)計器,單擊鼠標(biāo)右鍵添加表,選擇表中的某一字段直接拖放到表單的合適位置。默認(rèn)情況下,如果拖動的字段是邏輯型字段則產(chǎn)生復(fù)選框控件,如果拖動的是備注型字段,將產(chǎn)生編輯框控件;如果拖動的是表或視圖,將產(chǎn)生表格控件。7.5表單屬性和方法這里介紹表單的屬性和方法也是表單的重點。7.5.1常用的表單屬性表單的屬性大約有100個,但是絕大多數(shù)很少用到。表列出了常用的一些表單屬性。屬性描述默認(rèn)值A(chǔ)lwaysOnTop指定表單是否位于其他打開窗口之上AutoCenter指定表單初始化時是否自動在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確定表單是否可以移動Scrollbars指定表單的滾動條類型,可取值為0(無)1(水平)2(垂直)3(既水平又垂直)WindowState指明表單的狀態(tài):0(正常)1(最小化)2(最大化)WindowType指定表單是模式表

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

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

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

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

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

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

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

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

30、旦用戶單擊某個按鈕,則Value將保存該按鈕的編號,于是在程序中通過檢測Value的值,就可以為相應(yīng)的按鈕編寫特定的程序代碼。如果在設(shè)計時,給Value賦予一個字符型數(shù)據(jù),當(dāng)運行表單時,一旦用戶單擊某個按鈕,則Value將保存該按鈕的Caption屬性值。Buttons:用于存取命令按鈕組中每個命令按鈕的數(shù)組,代碼中可以通過該數(shù)組訪問命令按鈕組中的各個按鈕.7.5.6 編輯框(EditBox)控件 1編輯框控件的功能 用于顯示或編輯多行文本信息。編輯框?qū)嶋H上是一個完整的簡單字處理器,在編輯框中能夠選擇、剪切、粘貼以及復(fù)制正文,可以實現(xiàn)自動換行,能夠有自己的垂直滾動條。 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)屬性值為(默認(rèn)值)時,編輯框包含垂直滾動條。 7.5.7 復(fù)選框(CheckBox)控件1復(fù)選框的功能 用于標(biāo)識一個兩值狀態(tài),如真(.t.)或假(.f.)。當(dāng)處于“真”狀態(tài)時,復(fù)選框內(nèi)顯示一個

32、對勾,當(dāng)處于“假”狀態(tài)時復(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 選項組(OptionGroup)控件 1選項組控件的功能 選項組又稱為選項按鈕組,是包含選項按鈕的一種容器。一個選項組中往往包含若干個選項按鈕,但用戶只能從中選擇一個按鈕。當(dāng)用戶單擊某個選項按鈕時,該按鈕即成為被選中狀態(tài),而選項組中的其他選項按鈕,不管原來是什么狀態(tài),都變?yōu)槲催x中狀態(tài),被選中的選項按鈕中會顯示一個圓點。 2選項組常用

33、屬性 ButtonCount:指定選項組中選項按鈕的數(shù)目。 Value:用于指定選項組中哪個選項按鈕被選中。ControlSource:指定選項組數(shù)據(jù)源。 Buttons:用于存取選項組中每個選項的數(shù)組?!纠棵畎粹o組、選項組、復(fù)選框、編輯框應(yīng)用示例,按如圖7-17設(shè)計一個表單,要求:用戶單擊確定按鈕時,在編輯框中顯示用戶對選項組和復(fù)選框的選擇。并將表單保存為FORM3編寫事件代碼選擇命令按鈕組,在屬性窗口中雙擊“CLICK EVENT”屬性,系統(tǒng)會打開代碼編寫器,在代碼編寫器窗口為“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ù)項),用戶可以從中選擇一個或多個條目,一般情況下,列表框顯示其中的若干條目,用戶可以通過滾動條瀏覽其他條目。 2選項組常用屬性 :RowSourceType屬性與RowSource屬性:RowSourceType屬性指明列表框數(shù)據(jù)源的類型,RowSource屬性指定列表框的數(shù)據(jù)源 ,兩者常用的搭配如表 RowSourceType屬性值RowSource屬性描述0無(默認(rèn)值)在程序運行時通過AddItem

36、方法添加列表框條目,通過RemoveItem方法移去列表框。1值RowSource=”北京,上海,天津”通過RowSource屬性手工指定具體的列表框條目如RowSource=”北京,上海,天津”2別名Cj11將表中的字段作為列表框的條目。ColumnCount屬性指定要取的字段數(shù)目,也就是列表框的列數(shù)。指定的字段總是表中最前面的若干個字段。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é)號,姓名,班級,總分將表的一個或幾個字段作為列表框條目的數(shù)據(jù)源。與RowsourceType =2不同,這里可以指定所需要的字段。7文件RowSource=*.dbf將某個驅(qū)動器的目錄下的文件名作為列表框數(shù)目條的數(shù)據(jù)來源。8結(jié)構(gòu)RowSource=stu將指定表的字段名作為列表框的條目,由RowSourc屬性指定表,若RowSource屬性值為空,則列表框顯示當(dāng)前表中的字段清單。List屬性:用以存取列表框中數(shù)據(jù)條目的字符串?dāng)?shù)組。例如,LI

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

溫馨提示

  • 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

提交評論