第6章表單設(shè)計與使用(new)_第1頁
第6章表單設(shè)計與使用(new)_第2頁
第6章表單設(shè)計與使用(new)_第3頁
第6章表單設(shè)計與使用(new)_第4頁
第6章表單設(shè)計與使用(new)_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章表單設(shè)計與使用6.1面向?qū)ο蟮母拍?.2VFP基類簡介6.3創(chuàng)建與運行表單6.4表單設(shè)計器6.5表單屬性與方法6.6基本型控件6.7容器型控件6.8自定義類6.1面向?qū)ο蟮母拍?.1面向?qū)ο蟮母拍?.1.1對象與類1.對象(object):客觀世界里的任何實體,可以是具體的,也可以是抽象的。對象是描述對象特征的屬性和描述對象行為的方法的封裝體2.類(class):具有相同屬性的對象的集合;類是對象的抽象,對象是類的實例。6.1.2子類與繼承6.2.1vfp基類:p174表6.1是系統(tǒng)本身內(nèi)含的。每個基類都有自己的一組屬性、方法(主動)、事件(被動)。基類的最小屬性集p175表6.2使用對象屬性及方法的基本格式:對象名.屬性名對象名.方法名[(參數(shù)列表)]6.2VFP基類簡介6.2.2容器與控件Vfp中的類一般可分為兩種類型:容器類與控件類??煞謩e生成容器對象和控件對象。P176表6.3是放在表單上用以顯示數(shù)據(jù)、執(zhí)行操作或使表單更易閱讀的一種圖形對象。對象層次與類的層次的區(qū)別包容與被包容繼承與被繼承容器層次中的對象引用屬性或關(guān)鍵字:P176表6.46.2VFP基類簡介6.2VFP基類簡介

屬性或關(guān)鍵字引用

parent當(dāng)前對象的直接容器對象

this當(dāng)前對象

thisform當(dāng)前對象所在的表單

thisformset當(dāng)前對象所在的表單集6.2VFP基類簡介6.2.3事件事件是一種由系統(tǒng)預(yù)先定義而由用戶或系統(tǒng)發(fā)出的動作。事件作用于對象,對象識別事件并作出相應(yīng)反應(yīng)。事件是系統(tǒng)提供的,用戶不能定義新的事件。VFP基類最小事件集P177表6.5容器對象的嵌套層次中事件處理的獨立性原則(最里層的對象識別事件)和例外

例如:在圖所示的表單中有一個命令按鈕,表單設(shè)置了Click事件和DblClick事件的處理代碼;命令按鈕僅設(shè)置了Click事件的處理代碼,那么當(dāng)用戶單擊命令按鈕時,不會觸發(fā)表單的Click事件

對于表格控件來說,表格包含列控件,列控件又包含標(biāo)頭和文本框控件。當(dāng)事件發(fā)生時,只有與事件相關(guān)聯(lián)的最里層對象識別該事件,更高層的容器不識別該事件,如圖所示,例外:對于選項按鈕組與命令按鈕組來說,組中個別按鈕如果沒有編寫事件處理代碼,則當(dāng)事件發(fā)生時將執(zhí)行組事件的處理代碼。6.3.1創(chuàng)建表單兩種途徑:表單設(shè)計器與向?qū)Э梢岳帽韱卧O(shè)計器來創(chuàng)建表單文件(.scx),并通過運行表單文件來生成表單對象。表單設(shè)計器創(chuàng)建表單的方法:在項目管理器中創(chuàng)建表單利用菜單創(chuàng)建表單使用createform命令創(chuàng)建表單修改已有表單:modifyform表單文件名運行表單:

doform表單文件名6.3創(chuàng)建與運行表單6.4表單設(shè)計器6.4.1表單設(shè)計器環(huán)境:表單設(shè)計器窗口、屬性窗口、表單控件工具欄、表單設(shè)計器工具欄及表單菜單;有關(guān)屬性窗口的說明:屬性值為表達式時;設(shè)置某屬性為默認(rèn)值;

只讀屬性;

多個控件相同屬性的設(shè)置;有關(guān)表單控件工具欄的說明:按鈕鎖定:用于添加多個同類型控件;6.4表單設(shè)計器6.4.2控件的操作與布局控件的基本操作;控件布局:利用“布局”工具欄;P184表6.7設(shè)置tab鍵次序:交互方式和列表方式與表單外觀有關(guān)的一些屬性LeftHeightWidthTopMaxbuttonMinbutton決定窗體的位置決定窗體的大小決定窗體的最大、最小化按鈕可用BorderStyle(邊框)Enabled與Visible:設(shè)置窗體是否可用和可見的Font系列:設(shè)置直接顯示在窗體中的文字的字體Picture:設(shè)置窗體中顯示的圖片與表單外觀有關(guān)的一些屬性ForeColor(前景色)BackColor(背景色)Caption(標(biāo)題)Icon(圖標(biāo))6.4表單設(shè)計器12106.4.3數(shù)據(jù)環(huán)境為表單建立數(shù)據(jù)環(huán)境,可以方便設(shè)置控件與數(shù)據(jù)之間的綁定關(guān)系。根據(jù)控件與數(shù)據(jù)源的關(guān)系分兩類數(shù)據(jù)綁定型控件(復(fù)選框、列、組合框、編輯框、列表框、選項按鈕、選項組、微調(diào)、文本框、表格)控件源—ControlSource屬性(表格除外)RecordSource屬性RowSourceType屬性非數(shù)據(jù)綁定型控件(命令按鈕、標(biāo)簽、線條)1.數(shù)據(jù)環(huán)境的常用屬性表單的數(shù)據(jù)環(huán)境作為表單文件的一部分保存。數(shù)據(jù)環(huán)境是一個數(shù)據(jù)庫對象,有自己的屬性、方法和事件。P185表6.8可以用數(shù)據(jù)環(huán)境設(shè)計器可視化地設(shè)置表單的數(shù)據(jù)環(huán)境。2.打開數(shù)據(jù)環(huán)境設(shè)計器3.向數(shù)據(jù)環(huán)境添加表或視圖6.4表單設(shè)計器4.從數(shù)據(jù)環(huán)境移去表或視圖5.在數(shù)據(jù)環(huán)境中設(shè)置關(guān)聯(lián)6.在數(shù)據(jù)環(huán)境中編輯關(guān)聯(lián)關(guān)聯(lián)是數(shù)據(jù)環(huán)境中的對象,它有自己的屬性、方法和事件。P186表6.9關(guān)聯(lián)的常用屬性:(了解)Relationalexpr屬性:關(guān)聯(lián)表達式

Parentalias屬性:主表的別名

Childalias屬性:子表的別名

Childorder屬性:控制索引

Onetomany屬性:一對多關(guān)系7.向表單添加字段****6.5表單的屬性和方法6.5.1表單的常用屬性:P187表6.10常在設(shè)計階段進行設(shè)計,這些屬性規(guī)定了表單的外觀和行為。Autocenter屬性:居中顯示表單Backcolor屬性:表單窗口的顏色Borderstyle屬性:表單邊框的風(fēng)格Caption屬性:表單標(biāo)題欄Maxbutton:表單是否有最大化按鈕Minbutton:表單是否有最小化按鈕Movable:表單是否能夠動Windowstate:表單的狀態(tài):

0正常1最小化2最大化Windowtype:指定表單是否是模式表單:

1模式表單2非模式表單6.5表單的屬性和方法6.5.2常用的事件與方法P189表6.11事件與方法代碼的設(shè)置三種進入方式1.運行時事件:load事件:在表單對象建立之前引發(fā),即運行表單時,先引發(fā)表單的load事件,再引發(fā)表單的init事件。

init事件:在對象建立時引發(fā),在表單對象的init事件引發(fā)之前,將先引發(fā)它所包含的控件對象的init事件。2.關(guān)閉時事件:destroy事件:在對象釋放時引發(fā)。表單對象的destory事件在它所包含的控件對象的destory事件引發(fā)之前引發(fā);unload事件:在表單對象釋放時引發(fā),是表單對象釋放時最后一個要引發(fā)的事件。6.5表單的屬性和方法3.交互時事件:

getfocus事件:當(dāng)對象獲得焦點時引發(fā)。如鼠標(biāo)單擊或調(diào)用setfocus方法時;click事件:單擊事件;dblclick事件:雙擊事件;rightclick事件:右鍵單擊對象時引發(fā);interactivechange事件:當(dāng)改變一個控件的值時引發(fā);4.錯誤時事件Error:當(dāng)對象方法或事件代碼在運行過程中發(fā)生錯誤時引發(fā)。6.5表單的屬性和方法5.表單的顯示、隱藏與關(guān)閉方法:

show方法:顯示表單。

hide方法:隱藏表單。

release方法:將表單從內(nèi)存中釋放6.表單或控件的刷新方法:refresh方法:重新繪制表單或控件,并刷新它的所有值。7.控件的焦點設(shè)置方法:

Setfocus方法:讓控件獲得焦點,使其成為活動對象。例.設(shè)計表單,了解表單的常用事件:P189表6.11例.運行表單form1時使標(biāo)題為“hello”,高度和寬度均為200。doformform1with“hello”,200,200Release方法:將表單從內(nèi)存中釋放。ThisForm.ReleaseRefresh方法:刷新表單。Show方法:顯示表單。該方法將表單的Visible屬性設(shè)置為.T.。Hide方法:隱藏表單。該方法將表單的Visible屬性設(shè)置為.F.。表單常用方法LOAD事件:在表單建立之前引發(fā)。Init事件:在表單創(chuàng)建時引發(fā).Destroy事件:在表單對象釋放時引發(fā)。CLICK事件:用鼠標(biāo)單擊表單時引發(fā).RightClick事件:用鼠標(biāo)右鍵單擊表單時引發(fā).UNLOAD事件:表單釋放時最后引發(fā)的事件表單常用事件6.5.3向表單添加新的屬性和方法P1911.創(chuàng)建新屬性:選擇“表單”菜單中的“新建屬性”命令。2.創(chuàng)建新方法:選擇“表單”菜單中的“新建方法程序”命令。刪除用戶添加的屬性或方法:選擇“表單”菜單中“編輯屬性/方法程序”3.編輯方法或事件代碼:將方法或事件設(shè)置為默認(rèn):6.6基本型控件控件可分為:基本型控件和容器型控件基本型控件標(biāo)簽、文本框、命令按鈕、列表框等;容器型控件選項按鈕組、命令按鈕組、表格、表格列、頁框、頁面、表單、表單集、容器、工具欄等。學(xué)習(xí)控件的使用,主要有兩個方面:1.每種控件最適合什么樣的任務(wù);2.每種控件最常用的屬性、事件和方法。選項按鈕組、列表框、下拉列表框、復(fù)選框等控件為用戶提供一組預(yù)先設(shè)定的數(shù)據(jù)選項文本框、編輯框、組合框等控件讓用戶輸入預(yù)先不能確定的數(shù)據(jù)微調(diào)框控件讓用戶輸入給定范圍的數(shù)值型數(shù)據(jù)命令按鈕或命令按鈕組讓用戶進行特定的操作計時器控件在給定時間間隔執(zhí)行指定的操作利用表格控件操作多行數(shù)據(jù)利用標(biāo)簽、文本框、形狀、線條、圖形、圖像等控件顯示信息選擇合適的控件6.6.1標(biāo)簽(label)標(biāo)簽控件用于顯示文本,不能編輯文本;常用的標(biāo)簽屬性如下:1.Caption屬性指定標(biāo)簽的標(biāo)題文本。表單、復(fù)選框、選項按鈕、命令按鈕等都具有caption屬性利用控件的caption屬性設(shè)置控件的訪問鍵:設(shè)置方式:\<訪問鍵訪問方式:直接按訪問鍵或alt+訪問鍵6.6.1標(biāo)簽(label)標(biāo)簽控件不具有g(shù)otfocus事件,雖然可以為標(biāo)簽指定tab鍵序,但標(biāo)簽并不能獲得焦點,而是把焦點傳遞給tab鍵序中緊跟著標(biāo)簽的下一個控件。Name屬性:****設(shè)置對象的名稱,在設(shè)計代碼時用于引用對象;所有對象,包括表單與控件都有name屬性,該屬性只能在設(shè)計階段設(shè)置。6.6.1標(biāo)簽(label)Alignment屬性:指定標(biāo)題文本在控件中顯示的對齊方式。0:左對齊1:右對齊2:居中Alignment屬性除了標(biāo)簽,還適用于文本框、復(fù)選框、選項按鈕、列、標(biāo)頭等控件6.6.2命令按鈕(commandbutton)1.Default屬性和cancel屬性:Default屬性為.t.時,則按下enter鍵就選擇了該命令按鈕,并執(zhí)行該按鈕的click事件。Cancel屬性為.t.時,則按下esc鍵就選擇了該命令按鈕,并執(zhí)行該按鈕的click事件Enabled屬性:表示對象的可用性或有效性Visible屬性:表示對象的可見性(非活動)Show方法(活動)6.6.3文本框(textbox)文本框可用于輸入數(shù)據(jù)或編輯內(nèi)存變量、數(shù)組元素和非備注型字段內(nèi)的數(shù)據(jù),如字符型、數(shù)值型、邏輯型、日期型或日期時間型等。1.Controlsource屬性:****為文本框指定要綁定的數(shù)據(jù)源,數(shù)據(jù)源是一個字段或內(nèi)存變量。用戶對文本框的編輯結(jié)果會改變該字段或內(nèi)存變量。注編輯框、復(fù)選框、列表框、組合框、命令組、選擇組、列等控件都具有該屬性6.6.3文本框(textbox)2.Value屬性:用于設(shè)置或讀取文本框的內(nèi)容;

注編輯框、復(fù)選框、列表框、組合框、命令組、選擇組等控件都具有該屬性3.Passwordchar屬性:用于設(shè)置口令字(占位符);注此屬性不影響value屬性的設(shè)置,value屬性的值是用戶輸入的實際內(nèi)容;6.6.3文本框(textbox)4.Inputmask屬性:指定在一個文本框中如何輸入和顯示數(shù)據(jù)。Inputmask屬性值是一個字符串,該字符串由一些模式符組成P195表6.13該屬性除了文本框,還適用于組合框、列等控件。例.P196設(shè)計一個表單,瀏覽職工表的數(shù)據(jù),要求,當(dāng)表單中顯示的是第一條記錄時,命令按鈕“上一條”應(yīng)置為無效;當(dāng)表單中顯示的是最后一條記錄時,命令按鈕“下一條”應(yīng)置為無效。 6.6.4編輯框(editbox)與文本框一樣,編輯框也用來輸入、編輯數(shù)據(jù),但與文本框有如下區(qū)別:編輯框是一個完整的字處理器,可以包含回車符、有垂直滾動條;編輯框只能輸入、編輯字符型數(shù)據(jù),包括字符型內(nèi)存變量、數(shù)組元素、字段以及備注字段里的內(nèi)容;編輯框沒有inputmask屬性。6.6.4編輯框(editbox)1.Hideselection屬性:指定當(dāng)編輯框失去焦點時,編輯框中選定的文本是否仍顯示為選定狀態(tài)。當(dāng)hideselection屬性為.t.時:失去焦點時,不顯示為選定狀態(tài)當(dāng)hideselection屬性為.f.時:失去焦點時,顯示為選定狀態(tài)6.6.4編輯框(editbox)2.Readonly屬性:指定用戶能否編輯編輯框中的內(nèi)容。取值為.f.時,可以修改編輯框中的內(nèi)容3.Scrollbars屬性:指定編輯框是否具有滾動條。(僅取0或2兩個值)6.6.4編輯框(editbox)4.Selstart屬性:返回用戶在編輯框中所選文本的起始點位置。5.Sellength屬性:返回用戶在編輯框中所選文本的字符數(shù)。6.Seltext屬性:返回用戶編輯區(qū)內(nèi)選定的文本。例.p199設(shè)計一個簡單的查找替換界面。6.6.5復(fù)選框(checkbox)1.Caption屬性:用來指定顯示在復(fù)選框旁邊的標(biāo)題。2.Controlsource屬性:指明復(fù)選框要綁定的數(shù)據(jù)源,數(shù)據(jù)源的類型可以是數(shù)值型或邏輯型。復(fù)選框的三種狀態(tài):未被選中(0),被選中(1),不確定(2)。

3.Value屬性:設(shè)置或返回復(fù)選框的狀態(tài)。默認(rèn)為0;6.6.6列表框(listbox)1.Rowsourcetype屬性:P201表6.15

指明列表框中條目的數(shù)據(jù)源類型;2.Rowsource屬性:指明列表框中條目的數(shù)據(jù)源;3.Columncount屬性:指定列表框的列數(shù),即一個條目中包含的數(shù)據(jù)項數(shù)目。此屬性還用于表格;4.Value屬性:返回列表框中被選中的條目。該屬性只讀。6.6.6列表框(listbox)5.Multiselect屬性:指定用戶能否在列表框中進行多重選定。

0或.f.:不允許多重選擇(默認(rèn));1或.t.:允許多重選擇。6.List屬性:用以存取列表框中數(shù)據(jù)條目的字符串?dāng)?shù)組。例.讀取列表框中第3個條目第1列上的數(shù)據(jù)項:Var=thisform.mylist.list(3,1)或:Var=thisform.mylist.list(3)6.6.6列表框(listbox)7.Listcount屬性屬性數(shù)組指定列表框中數(shù)據(jù)條目的數(shù)目;8.Selected屬性屬性數(shù)組指定列表框內(nèi)的某個條目是否處于選定狀態(tài)。6.6.7組合框(combobox)組合框有兩種形式:下拉組合框和下拉列表框。通過設(shè)置style屬性可選擇想要的形式:style屬性值:

0下拉組合框。用戶可以從列表中選擇,也可以在編輯區(qū)內(nèi)輸入。在編輯區(qū)內(nèi)輸入的內(nèi)容可以從text屬性中獲得;2下拉列表框。用戶只能從列表中選擇6.6.7組合框(combobox)例.P203設(shè)計一個選擇查詢表單,表單運行時,可以先在右側(cè)的下拉列表框中選擇需要打開并查詢的表文件,然后在列表框中選擇需要輸出的字段,最后單擊確定按鈕,顯示指定表中的記錄在指定字段上的內(nèi)容.6.7容器型控件命令組、選項組、表格、頁框等常用的容器型控件。容器型控件與其所包含的控件一般都有自己的屬性、方法和事件。選擇容器中某控件的方法:1.屬性窗口選擇2.鼠標(biāo)右擊6.7.1命令組(commandgroup)命令組是包含一組命令按鈕的容器控件;命令組和其中的每個按鈕都有自己的屬性、方法和事件。1.Buttoncount屬性:指定命令組中命令按鈕的數(shù)目。6.7.1命令組(commandgroup)2.Buttons屬性:(屬性數(shù)組)用于存取命令組中各按鈕的數(shù)組。用戶可以利用該數(shù)組為命令組中的命令按鈕設(shè)置屬性。例:thisform.mycommandg.buttons(2).visible=.f.3.Value屬性:指定命令組當(dāng)前的選中狀態(tài)。該屬性的類型可以是數(shù)值型的,也可以是字符型的。若為字符型,則表示命令組中與caption屬性值相同的命令按鈕被選中6.7.1命令組(commandgroup)例.一個命令組內(nèi)包含三個命令按鈕,可以在命令組的click事件中設(shè)置以下代碼:

docasecasethis.value=1*處理

casethis.value=2*處理

casethis.value=3*處理

endcase6.7.2選項組(optiongroup)選項按鈕組,是包含選項按鈕的一種容器。1.Buttoncount屬性:指定選項組中選項按鈕的數(shù)目。2.Buttons屬性:用于存取選項組中每個按鈕的數(shù)組。用戶可以利用該屬性為選項組中的按鈕設(shè)置屬性。thisform.myoptionG.buttons(3).caption=“sortbycustomer”6.7.2選項組(optiongroup)3.Controlsource屬性:為選項組指定要綁定的數(shù)據(jù)源。4.Value屬性:初始化或返回選項組中被選中的選項按鈕。該屬性值的類型可以是數(shù)值型的,也可以是字符型的。6.7.3表格(grid)表格是一種容器對象;一個表格對象由若干列對象(column)組成,每個列對象包含一個標(biāo)頭對象(header)和若干控件。表格中的每個對象都有自己的屬性、事件和方法。1.表格的基本操作編輯表格:調(diào)整表格的行高和列寬使用表格生成器設(shè)置表格:6.7.3表格(grid)2.常用的表格(grid)屬性:1)Recordsourcetype屬性與recordsource屬性:Recordsourcetype屬性指定表格數(shù)據(jù)源的類型;recordsource屬性指定表格數(shù)據(jù)源。2)Columncount屬性:指定表格的列數(shù);默認(rèn)為-1,表示表格的列數(shù)任意,此時無列、標(biāo)頭等表格對象6.7.3表格(grid)3)Linkmaster屬性:指定表格控件中所顯示的子表的父表名稱。使用該屬性可建立父表與當(dāng)前子表的一對多的聯(lián)系。4)Childorder屬性:指定為建立一對多的聯(lián)系,子表所要用到的索引,使用該屬性前,應(yīng)在子表中建立相應(yīng)的索引。5)Relationalexpr屬性:確定基于父表字段的關(guān)聯(lián)表達式。6.7.3表格(grid)3.常用屬性1)Controlsource屬性:指定要在列中顯示的數(shù)據(jù)源。2)Currentcontrol屬性:指定列對象中的一個控件。3)Sparse屬性:用于確定currentcontrol屬性是影響列中的所有單元格,還是只影響活動單元格。6.7.3表格(grid)4.常用的標(biāo)頭(hea

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論