VFP數(shù)據(jù)庫系統(tǒng)Visual FoxPro常用的表單控件_第1頁
VFP數(shù)據(jù)庫系統(tǒng)Visual FoxPro常用的表單控件_第2頁
VFP數(shù)據(jù)庫系統(tǒng)Visual FoxPro常用的表單控件_第3頁
VFP數(shù)據(jù)庫系統(tǒng)Visual FoxPro常用的表單控件_第4頁
VFP數(shù)據(jù)庫系統(tǒng)Visual FoxPro常用的表單控件_第5頁
已閱讀5頁,還剩94頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第十章常用地表單控件VFP在面向?qū)ο箝_發(fā)環(huán)境中,是通過在表單上放置控件來完成信息地輸入設(shè)計工作地。在設(shè)計表單時可以使用兩類控件:與表中數(shù)據(jù)捆綁地控件與不與數(shù)據(jù)捆綁地控件。所謂捆綁控件是指當(dāng)輸入或選擇地值要保存或者被引用時,就需為該控件設(shè)置一個數(shù)據(jù)源,數(shù)據(jù)源可以是表中地字段或變量。對于數(shù)據(jù)源是變量或字段地控件,則需要設(shè)置控件地ControlSource屬性;若數(shù)據(jù)源是整個表中地數(shù)據(jù),則需要設(shè)置RecordSource屬性。而非捆綁控件則不與數(shù)據(jù)源直接捆綁。10.1標(biāo)簽控件(Label)標(biāo)簽控件:它是一個顯示文本圖形地控件,在設(shè)計時可以直接修改其中地文本,標(biāo)簽具有自己地一套屬性,事件與方法,能夠響應(yīng)絕大多數(shù)鼠標(biāo)事件,可以在運(yùn)行時動態(tài)地改變標(biāo)簽文本??梢允褂肨abIndex屬性為標(biāo)簽指定一個Tab次序,但標(biāo)簽并不能獲得焦點(diǎn),而是將焦點(diǎn)傳遞給Tab鍵次序中緊跟著標(biāo)簽地下一個控件。常用地標(biāo)簽屬性:①Caption屬性用于指定標(biāo)簽地標(biāo)題文本,最多可包含地字符數(shù)量為256。標(biāo)簽文本顯示在屏幕上以幫助用戶識別各個對象。用戶在產(chǎn)生表單或控件對象時,系統(tǒng)給予對象地Caption屬性值與Name屬性值是相同地,此時用戶應(yīng)特別注意它們地區(qū)別。用戶在為控件設(shè)置Caption屬性時,可以將其中地某個字符作為熱鍵,方法是在該字符前插入一個反斜杠(\)與一個小于號(<)。②AutoSize屬性該屬性用于確定是否根據(jù)標(biāo)題地長度來調(diào)整標(biāo)簽地大小。③Alignment屬性該屬性指定標(biāo)題文本在控件中顯示時地對齊方式。對于不同地控件,該屬性地設(shè)置是有區(qū)別地。對于標(biāo)簽,該屬性地設(shè)置值如下表所示。設(shè)置值說明0(默認(rèn)值)左對齊,文本顯示在區(qū)域地左邊1右對齊,文本顯示在區(qū)域地右邊2對齊,將文本居中排放,使左右兩邊地空白相等④BackStyle屬性該屬性用于確定標(biāo)簽是否透明。當(dāng)標(biāo)簽控件完全處于另一個控件地上方時,標(biāo)簽將遮住下方地控件,此時若標(biāo)簽控件地BackStyle屬性設(shè)置為0,則下方地控件將透過標(biāo)簽顯示出來。⑤WordWrap屬性該屬性用于確定標(biāo)簽上顯示地文本能否換行。前提是AutoSize屬性值應(yīng)設(shè)置為.T.。⑥FontSize屬性該屬性確定標(biāo)簽上顯示地文本字體地大小。⑦ForeColor屬性該屬性用于確定標(biāo)簽上顯示地文本字體地顏色。例10.1交換兩個變量中地數(shù)據(jù)(如下圖1所示)。設(shè)計步驟如下:①建立應(yīng)用程序用戶界面。選擇"新建"表單,進(jìn)入表單設(shè)計器,增加一個命令按鈕mand1,4個標(biāo)簽Label1,Label2,Label3,Label4(如圖10-3左所示)。②設(shè)置對象屬性(如表10-2),設(shè)置完成之后地界面如圖10-3右所示。③編寫程序代碼。*編寫命令按鈕mand1地Click事件代碼:t=Thisform.Label3.CaptionThisform.Label3.Caption=Thisform.Label4.CaptionThisform.Label4.Caption=t運(yùn)行程序,單擊"交換"按鈕,即可看到兩個白框中地數(shù)據(jù)相互交換。例10.110.2命令按鈕控件(mand)命令按鈕一般是用于啟動某一動作地事件(如關(guān)閉表單,移動記錄等)。這些事件地操作代碼通常是放置在命令按鈕地Click事件中。當(dāng)用戶需要完成某項特定地操作時,可單擊此命令按鈕。常用屬性:①Default屬性與Cancel屬性Default屬性值為.T.地命令按鈕稱為"確認(rèn)"按鈕。命令按鈕地Default屬性地默認(rèn)值為.F.。一個表單內(nèi)只能有一個"確認(rèn)"按鈕,當(dāng)用戶將某個命令按鈕設(shè)置為"確認(rèn)"按鈕時,先前存在地"確認(rèn)"按鈕將自動變?yōu)?非確認(rèn)"按鈕。 "確認(rèn)"按鈕地行為要受到KEYP設(shè)置(DOS或WINDOWS)地影響。在"確認(rèn)"按鈕所在地表單激活地情況下,"確認(rèn)"按鈕地行為如下表所示。設(shè)置值效果DOS按Ctrl+Enter,選擇"確認(rèn)"按鈕,執(zhí)行Click事件代碼WINDOWS當(dāng)焦點(diǎn)不在命令按鈕上時,按Enter,選擇"確認(rèn)"按鈕,執(zhí)行Click事件代碼Cancel屬性值為.F.地命令按鈕稱為"取消"按鈕。命令按鈕地Cancel屬性默認(rèn)值為.F.。在"取消"按鈕所在地表單激活地情況下。按Esc鍵即可激活"取消"按鈕,執(zhí)行該按鈕地Click事件代碼。這兩個屬性在設(shè)計與運(yùn)行階段都可使用,主要適用于命令按鈕。②Enabled屬性指定表單或控件能否響應(yīng)由用戶引發(fā)地事件。默認(rèn)值為.T.,即對象是有效地,能被選擇,能響應(yīng)用戶引發(fā)地事件。Enabled屬性使得用戶(程序)可以根據(jù)應(yīng)用地當(dāng)前狀態(tài)隨時決定一個對象是有效地還是無效地,也可限制一個對象地使用(如用一個無效地編輯框來顯示只讀信息)。值得注意地是,若一個容器對象地Enabled屬性值為.F.,那么它所包容地所有對象也都不會響應(yīng)用戶引發(fā)地事件,而無論這些對象地Enabled屬性值如何。③Visible屬性指定對象是可見還是隱藏。在表單設(shè)計器中,默認(rèn)值為T.,即對象是可見地;在程序代碼中,默認(rèn)值為.F.,即對象是隱藏地。但是一個對象即使是隱藏地,在代碼中仍可以訪問它。④Caption屬性該屬性決定在命令按鈕上顯示地標(biāo)題文本。例10.2利用命令按鈕以實(shí)現(xiàn)顯示狀態(tài)地切換(如下圖所示)。設(shè)計步驟如下:①建立應(yīng)用程序用戶界面:選擇"新建"表單,進(jìn)入表單設(shè)計器,增加2個命令按鈕mand1,mand2,一個標(biāo)簽Label1。②設(shè)置對象屬性③編寫程序代碼。*編寫mand1地Click事件代碼:IFThis.Caption="\<H歡迎"Thisform.Label1.Caption="歡迎使用"+CHR(13)+"VisualFoxPro6.0"This.Caption="\<D日期"ELSEThisform.Label1.Caption="今天是:"+CHR(13)+STR(YEAR(DATE()),4)+;'年'+STR(MONTH(DATE()),2)+'月'+STR(DAY(DATE()),2)+'日'This.Caption="\<H歡迎"ENDIF*編寫mand2地Click事件代碼:Thisform.Release()例10.210.3文本框控件(Text)文本框控件是VFP中一種常用地控件。用戶利用它可以在內(nèi)存變量,數(shù)組元素或非備注型字段中輸入或編輯數(shù)據(jù)。所有標(biāo)準(zhǔn)地VFP編輯功能(如剪切,復(fù)制與粘貼),在文本框內(nèi)都可使用,文本框一般包含一行數(shù)據(jù),文本框可以編輯任何類型地數(shù)據(jù)(如字符型,數(shù)值型,邏輯型,日期型或日期時間型等)。常用屬性:①Value屬性該屬性返回文本框地當(dāng)前內(nèi)容。它地默認(rèn)值為空串。②PasswordChar屬性該屬性指定文本框控件內(nèi)是顯示用戶輸入地真實(shí)字符還是顯示占位符。該屬性地默認(rèn)值為空串,此時沒有占位符,文本框內(nèi)顯示用戶輸入地真實(shí)字符;當(dāng)為該屬性指定一個字符(即占位符,通常為*)后,文本框內(nèi)將顯示占位符,而不會顯示用戶輸入地實(shí)際字符。這通常用于在設(shè)計登錄口令框時使用。此屬性不會影響Value屬性地設(shè)置,Value屬性總是包含用戶輸入地實(shí)際內(nèi)容。該屬性在設(shè)計與運(yùn)行階段時可用,僅適用于文本框。③InputMask屬性該屬性指定在一個文本框如何輸入與顯示數(shù)據(jù)。InputMask屬性值是一個字符串。該字符串通常由一些所謂地模式符組成,每個模式符都規(guī)定了相應(yīng)位置上數(shù)據(jù)地輸入與顯示行為。模式符功能x允許輸入任何字符9允許數(shù)字與正負(fù)號#允許輸入數(shù)字,空格與正負(fù)號$在固定位置上顯示當(dāng)前貨幣符號(由SetCurrency命令指定)$$在數(shù)值前面相鄰地位置上顯示當(dāng)前貨幣號(浮動貨幣符)*在數(shù)值左邊顯示星號*.指定小數(shù)點(diǎn)地位置,分隔小數(shù)點(diǎn)左邊地數(shù)字串例10.3利用文本框輸入圓地半徑,計算圓地面積。設(shè)計步驟如下:①建立應(yīng)用程序用戶界面。選擇"新建"表單,進(jìn)入表單設(shè)計器,增加兩個"文本框"控件Text1與Text2,兩個標(biāo)簽控件Label1與Label2,兩個命令按鈕mand1與mand2(如下圖所示)。.②設(shè)置對象屬性(如表10-6所示),設(shè)置完成之后如下圖所示。③編寫程序代碼。*編寫表單Form1地Activate事件代碼:This.Text1.SetFocus*編寫mand1地Click事件代碼:a=Thisform.Text1.ValueThisform.Text2.Value=a*a*3.14159Thisform.Text1.Setfocus*編寫mand2地Click事件代碼:Thisform.Release例10.3例10.4設(shè)計一個接受口令地表單,屏幕只顯示相同個數(shù)地"*"號,并控制用戶輸入口令地次數(shù)。設(shè)計步驟如下:①建立應(yīng)用程序用戶界面。選擇"新建"表單,進(jìn)入表單設(shè)計器,增加兩個標(biāo)簽控件Label1與Label2,一個命令按鈕mand1,一個文本框控件Text1(如圖10-8左所示)。②設(shè)置對象屬性(如表10-7所示),設(shè)置完成之后如圖10-8右所示。③編寫事件代碼。*編寫表單Form1地Activate事件代碼:PUBLICn &&定義全局變量n=0 &&賦初值This.mand1.Enabled=.F.*編寫命令按鈕mand1地Click事件代碼:Thisform.Release*編寫文本框Text1地Valid事件代碼:a=LOWER(This.Value)IFa="abcdef"Thisform.Label2.Caption="歡迎使用!"Thisform.mand1.Tabstop=.T.ELSEThisform.Label2.Caption="對不起,口令錯!"This.Value=""n=n+1IFn=3Thisform.Label2.Caption="對不起,您無權(quán)使用!"Thisform.mand1.Tabstop=.T.This.Enabled=.F.Thisform.mand1.Enabled=.T.ENFIFENDIF例10.410.4計時器控件(Timer)計時器控件允許在指定地時間間隔內(nèi)執(zhí)行操作與檢查數(shù)據(jù)。計時器控件與用戶地操作相互獨(dú)立。它對時間作出反應(yīng),可以讓計時器以一定地時間間隔重復(fù)地執(zhí)行某種操作。計時器通常用于檢查系統(tǒng)時鐘,確定是否到了應(yīng)該執(zhí)行某一任務(wù)地時間,對于其它一些后臺處理,計時器也很有用。在運(yùn)行時,計時器是不可見地,但它一直在后臺計時。①Enabled屬性該屬性用于確定計時器是否開始計時。當(dāng)屬性值為.F.,時,計時器停止計時;當(dāng)屬性值為.T.時,計時器開始計時。②Interval屬性該屬性確定計時器Timer事件地兩次引發(fā)地時間間隔。它地單位是毫秒。間隔并不能保證經(jīng)歷地時間地精確度。系統(tǒng)每秒產(chǎn)生18次時鐘跳動,因此間隔地真正精度不會超過1/18s。若應(yīng)用程序向系統(tǒng)提交繁重地任務(wù)(如很長地循環(huán),大量地計算,或磁盤,網(wǎng)絡(luò),端口地訪問等),則應(yīng)用程序不能按Interval屬性指定地頻率來引發(fā)計時器事件。例10.5設(shè)計一個電子動感標(biāo)題板,使"2008年北京奧運(yùn)會"地標(biāo)題字樣在表單地黃色區(qū)域內(nèi)從左至右運(yùn)動。當(dāng)單擊"暫停"按鈕時,使標(biāo)題停止移動,按鈕變?yōu)?繼續(xù)";當(dāng)單擊"繼續(xù)"按鈕時,標(biāo)題繼續(xù)移動,按鈕又變?yōu)?暫停"(如下圖所示)。設(shè)計步驟如下:①建立應(yīng)用程序用戶界面。選擇"新建"表單,進(jìn)入表單設(shè)計器,增加一個命令按鈕mand1,一個容器控件Container1,用鼠標(biāo)右鍵單擊容器控件,在彈出地快捷菜單中選擇"編輯",開始對容器進(jìn)行設(shè)計。在容器中增加一個標(biāo)簽控件Label1與一個計時器控件Timer1(如圖10-11左所示)。②設(shè)置對象屬性(如表10-8所示),設(shè)置完成之后如圖10-11右所示。③編寫程序代碼。*編寫mand1地Click事件代碼:IFThis.Caption="\<S暫停"This.Caption="\<S繼續(xù)"Thisform.Container1.Timer1.Enabled=.F.ELSEThis.Caption="\<S暫停"Thisform.Container1.Timer1.Enabled=.T.ENDIF*編寫Timer1地Timer事件代碼:IFThis.Parent.Label1.Left+This.Parent.Label1.Width>0This.Parent.Label1.Left=This.Parent.Label1.Left-5ELSEThis.Parent.Label1.Left=This.Parent.WidthENDIF例10.510.5編輯框控件(Edit)

在VFP中文本框只能處理單行地文本數(shù)據(jù),處理多行文本數(shù)據(jù)則需要使用編輯框控件來完成。與文本框一樣,編輯框也可用于輸入,編輯數(shù)據(jù),但是它也有自己地特點(diǎn):編輯框?qū)嶋H上是一個完整地字處理器,利用它可選擇,剪切,粘貼與復(fù)制文本;可以實(shí)現(xiàn)自動換行;可以有自己地垂直滾動條;可用箭頭鍵在正文內(nèi)移動光標(biāo)。編輯框只能輸入,編輯字符型數(shù)據(jù),包括字符型內(nèi)存變量,數(shù)組元素,字段及備注型字段內(nèi)地內(nèi)容。常用屬性:①ReadOnly屬性指定用戶能否編輯編輯框中地內(nèi)容。其屬性值地設(shè)置如下表所示。ReadOnly屬性與Enabled屬性是有區(qū)別地。盡管在ReadOnly為.T.與Enabled為.F.兩種情況下,都使編輯框具有只讀地特點(diǎn),但是在前種情況下,用戶仍能移動焦點(diǎn)到編輯框上并使用滾動條,而后種情況則不能。該屬性在設(shè)計時可用,在運(yùn)行時可讀寫。除了編輯框,還適用于文本框,表格等控件。設(shè)置值說明.T.不能編輯編輯框中地內(nèi)容.F.(默認(rèn)值)能編輯編輯框中地內(nèi)容②ScrollBars屬性指定編輯框中是否具有滾動條。當(dāng)屬性值為0時,編輯框無滾動條;當(dāng)屬性值為2時(默認(rèn)值),編輯框具有垂直滾動條。該屬性在設(shè)計時可用,在運(yùn)行時可讀寫。除了編輯框,還適用于表單,表格等控件。③SelStart屬性返回用戶在編輯框中選定文本地起始點(diǎn)位置或插入點(diǎn)位置(無文本選定時)。也可用于指定需要選定文本地起始位置或插入點(diǎn)位置。屬性地有效取值范圍在0與編輯區(qū)中字符地總數(shù)之間。該屬性在設(shè)計時不可用,在運(yùn)行時可讀寫。除了編輯框,還適用于文本框,組合框等控件。④SelLength屬性返回用戶在控件地文本輸入?yún)^(qū)中所選定字符地數(shù)目,或指定需要選定地字符數(shù)目。屬性地有效取值范圍在0與編輯區(qū)中地字符總數(shù)之間,若小于0,將產(chǎn)生一個錯誤。該屬性在設(shè)計時不可用,在運(yùn)行時可讀寫。除了編輯框,還適用于文本框,組合框等控件。⑤SelText屬性返回用戶編輯區(qū)中選定地文本,若無選定地任何文本,則返回空串。該屬性在設(shè)計時不可用,在運(yùn)行時可讀寫。除了編輯框,還適用于文本框,組合框等控件。注:SelStart,SelLength與SelText屬性配合使用,可以完成諸如設(shè)置插入點(diǎn)位置,控制插入點(diǎn)地移動范圍,選擇字符,清除文本等一些處理。在使用這些屬性時,需要注意:若將SelLength屬性值設(shè)置為小于0,將產(chǎn)生一個錯誤。若SelStart屬性地設(shè)置值大于文本總字符數(shù),系統(tǒng)將自動將其調(diào)整為文本地總字符數(shù),即插入點(diǎn)位于文本末尾。若改變了Seltext屬性地值,系統(tǒng)將自動把SelLength屬性值設(shè)置為0。若將SelText屬性設(shè)置為一個新值,那么這個新值就會去置換編輯區(qū)中所選文本并將SelLength屬性置為0。若SelLength屬性值本來就是0,則新值就會被插入到插入點(diǎn)處。例10.6設(shè)計一個能簡單實(shí)現(xiàn)剪切,復(fù)制,粘貼地表單應(yīng)用例10.610.6微調(diào)器控件(Spinner)微調(diào)器控件(Spinner)可以在一定范圍內(nèi)控制數(shù)據(jù)地變化。除了能用鼠標(biāo)單擊控件右邊向上與向下地箭頭來增加與減少數(shù)值以外,還能象編輯框那樣直接輸入數(shù)值數(shù)據(jù)。常用屬性:①Value屬性該屬性表示微調(diào)器控件地當(dāng)前值。②KeyBoardHighValue屬性該屬性指定微調(diào)器控件從鍵盤接受輸入地數(shù)值地最大值。③KeyBoardLowValue屬性該屬性指定微調(diào)器控件從鍵盤接受輸入地數(shù)值地最小值。④SpinnerHighValue屬性該屬性指定按鈕微調(diào)數(shù)值地高限。⑤SpinnerLowValue屬性該屬性指定按鈕微調(diào)數(shù)值地低限。⑥Increment屬性設(shè)定按一次箭頭按鈕地遞增(遞減)值,默認(rèn)為1.00。若設(shè)置為1.50,則遞增(遞減)數(shù)1.5。⑦InputMask屬性設(shè)置輸入掩碼。微調(diào)器控件默認(rèn)帶2位小數(shù),若只要整數(shù)可用輸入掩碼來限定(如99999表示5位整數(shù))。若微調(diào)器控件綁定到表地字段,則輸入掩碼位數(shù)不能小于字段寬度,否則將顯示一串"*"號。例10.7設(shè)計用3個微調(diào)器控件實(shí)現(xiàn)對表單背景顏色地改變。設(shè)計步驟如下:①建立應(yīng)用程序用戶界面。選擇"新建"表單,進(jìn)入表單設(shè)計器,增加3個標(biāo)簽控件Label1,Label2,Label3共3個微調(diào)器控件Spinner1,Spinner2,Spinner3(如圖10-14左所示)。②設(shè)置對象屬性(如表10-13所示),設(shè)置完成之后如圖10-14右所示。③編寫程序代碼。*編寫微調(diào)器控件Spinner1地Click事件代碼:Thisform.BackColor=;RGB(Thisform.Spinner1.Value,Thisform.Spinner2.Value,;Thisform.Spinner3.Value)*編寫微調(diào)器控件Spinner2地Click事件代碼:Thisform.BackColor=;RGB(Thisform.Spinner1.Value,Thisform.Spinner2.Value,;Thisform.Spinner3.Value)*編寫微調(diào)器控件Spinner3地Click事件代碼:Thisform.BackColor=;RGB(Thisform.Spinner1.Value,Thisform.Spinner2.Value,;Thisform.Spinner3.Value)④運(yùn)行表單,運(yùn)行界面如下圖例10.710.7復(fù)選框控件(Check)復(fù)選框控件用于處理在兩種狀態(tài)之間地切換。當(dāng)復(fù)選框被選中時,復(fù)選框中出現(xiàn)一個"√",當(dāng)需取消選中狀態(tài)時,只需將復(fù)選框中地"√"取消即可。常用屬性:①Caption屬性該屬性用于指定顯示在復(fù)選框旁邊地文字信息。②Value屬性該屬性用于指明復(fù)選框地當(dāng)前狀態(tài)。復(fù)選框地Value屬性值地設(shè)置有3種情況(如下表所示)。屬性值說明0或F.(默認(rèn)值),未被選中1或.T.被選中2或.Null.不確定,只在代碼中有效③ControlSource屬性該屬性用于指明與復(fù)選框建立聯(lián)系地數(shù)據(jù)源。作為數(shù)據(jù)源地字段變量或內(nèi)存變量,其類型可以是邏輯型或數(shù)值型。對于邏輯型變量,值.F.,.T.與.Null.分別對應(yīng)復(fù)選框未被選中,被選中與不確定。對于數(shù)值型變量,值0,1喝(或.Null.)分別對應(yīng)復(fù)選框未被選中,被選中與不確定。用戶對復(fù)選框操作結(jié)果會自動存儲到數(shù)據(jù)源變量以及Value屬性中。例10.8利用復(fù)選框來控制輸入或輸出文本地字體風(fēng)格(如下圖所示)。設(shè)計步驟如下:①建立應(yīng)用程序用戶界面選擇"新建"表單,進(jìn)入表單設(shè)計器,增加一個文本框控件Text1,一個標(biāo)簽控件Label1,一個形狀控件Shape1,3個復(fù)選框控件Check1,Check2,Check3(如圖10-17左所示)。②設(shè)置對象屬性(如表10-15所示),設(shè)置完成之后如圖10-17右所示)。③編寫程序代碼*編寫表單Form1地Activate事件代碼:This.Text1.SetFocus*編寫Check1地Click事件代碼:Thisform.Text1.FontBold=This.Value*編寫Check1地Click事件代碼:Thisform.Text1.FontItalic=This.Value*編寫Check1地Click事件代碼:Thisform.Text1.FontUnderline=This.Value例10.810.8形狀控件(Shape)

形狀控件有利于可視方式將表單中地組件歸成組。將有關(guān)項聯(lián)系起來有助于用戶設(shè)計出精美地用戶界面,使應(yīng)用程序更加完美。主要用于在表單上畫出各種類型地形狀(包括圓,橢圓,正方形,圓角正方形,矩形,圓角矩形等)。常用屬性:①Curvature屬性屬性值為0(直角)~99(圓或橢圓)地一個值。形狀類型將由Curvature,Width,Height屬性決定(如下表)形狀控件創(chuàng)建時若Curvature屬性值為0,Width屬性值與Height屬性值也不相等,顯示一個矩形。若要畫出一個圓,應(yīng)將Curvate屬性值設(shè)置為99,并使Width屬性值與Height屬性值相等。CurvatureWidth與Height相等Width與Height不相等0正方形矩形1~99小圓角正方形→大圓角正方形→圓小圓角矩形→大圓角矩形→橢圓②FillStyle屬性確定形狀控件是透明地還是具有一個指定地背景填充方案。③SpecialEffect屬性確定形狀控件是平面地還是三維地。僅當(dāng)Curvature屬性設(shè)置為0時才有效。例10.910.9線條控件(Line)

線條控件主要用于在表單上畫各種類型地線條(包括斜線,水平線與垂直線)。①斜線線條控件創(chuàng)建時,默認(rèn)自控件區(qū)域地左上角至右下角顯示一條斜線。斜線傾斜角度由控件區(qū)域?qū)挾扰c高度來決定,可以拖動控件區(qū)域地控制點(diǎn)來改變控件區(qū)域地寬度與高度,或改變寬度屬性Width與高度屬性Height。斜線走向可用LineSlant屬性來指定,鍵盤字符"\"表示左上角至右下角,而"/"表示右上角至左下角。②水平線與垂直線若需顯示水平線或垂直線,可通過調(diào)節(jié)線條控件區(qū)域使對應(yīng)邊重合(表10-18列出了交互式與屬性設(shè)置兩種方式)。常用屬性①BorderWidth屬性該屬性決定線條地寬度為多少像素點(diǎn)。②LineSlant屬性該屬性指定當(dāng)線條不為水平或垂直時,線條地傾斜角度。10.10選項組控件(OptionGroup)選項組又稱為選項按鈕組,是包含選項按鈕地一種容器。一個選項組往往包含若干個選項按鈕,但是用戶只能從中選擇一個按鈕。當(dāng)用戶選擇某個按鈕選項按鈕時,該按鈕即成為被選中狀態(tài),而該選項組中地其它選項按鈕,無論原來是何種狀態(tài),都將變?yōu)槲催x中狀態(tài)。被選中地選項按鈕中會出現(xiàn)一個圓點(diǎn)。常用屬性:①ButtonCount屬性該屬性指定選項按鈕組中選項按鈕地數(shù)目。在表單中創(chuàng)建一個選項按鈕組時,ButtonCount屬性地默認(rèn)值為2(即包含2個選項按鈕)??梢酝ㄟ^改變ButtonCount屬性地屬性值來重新設(shè)置選項按鈕組中包含地選項按鈕數(shù)目。②Value屬性該屬性用于指定選項組中哪個選項被選中。該屬性值地類型可以是數(shù)值型地,也可以是字符型地。若為數(shù)值型n,則表示選項組中第n個選項按鈕被選中;若為字符型c,則表示選項組中Caption屬性值為c地選項按鈕被選中。③ControlSource屬性該屬性指明與選項組建立聯(lián)系地數(shù)據(jù)源。作為選項組數(shù)據(jù)源地字段變量或內(nèi)存變量,其類型可以是數(shù)值型或字符型,用戶對選項組地操作結(jié)果會自動存儲到數(shù)據(jù)源變量以及Value屬性中。④Buttons屬性該屬性用于存取選項組中每個按鈕地數(shù)組。用戶可以利用該屬性為選項組中地按鈕設(shè)置屬性或調(diào)用其方法。例10.10利用選項按鈕組控制文本地對齊方式與字體(如下圖所示)。設(shè)計步驟如下:①建立應(yīng)用程序用戶界面。選擇"新建"表單,進(jìn)入表單設(shè)計器,增加一個文本框Text1,3個標(biāo)簽Label1,Label2,Label3,2個選項按鈕組控件OptionGroup1,OptionGroup2③編寫程序代碼。*編寫表單Form1地Activate事件代碼:This.Text1.SetFocus*編寫OptionGroup1地Click事件代碼:n=This.ValueDOCASECASEn=1Thisform.Text1.Alignment=0CASEn=2Thisform.Text1.Alignment=2CASEn=3Thisform.Text1.Alignment=1ENDCASE*編寫OptionGroup2地Click事件代碼:n=This.ValueDOCASECASEn=1Thisform.Text1.FontName="宋體"CASEn=2Thisform.Text1.FontName="隸書"CASEn=3Thisform.Text1.FontName="楷體_GB2312"ENDCASE例10.1010.11命令組控件(mandGroup)命令組控件是包含一組命令按鈕地容器控件,用戶可以單個或作為一組來操作其中地按鈕。在表單設(shè)計器中,為了選擇命令組中地某個按鈕,以便為其單獨(dú)設(shè)置屬性,方法與事件,可以采用以下兩種方法:一是從屬性窗口地對象下拉式組合框中選擇所需地命令按鈕;二是用鼠標(biāo)右鍵單擊命令組,然后從彈出地快捷菜單中選擇"編輯"命令,這樣命令組就進(jìn)入了編輯狀態(tài),用戶可以通過鼠標(biāo)單擊來選擇某個具體地命令按鈕。這種編輯操作方法對其它容器類控件同樣適用。常用屬性:①ButtonCount屬性該屬性指定命令組中命令按鈕地數(shù)目。在表單中創(chuàng)建命令組說,ButtonCount屬性地默認(rèn)值為2,即包含2個命令按鈕??梢酝ㄟ^改變ButtonCount屬性地值來重新設(shè)置命令組中地命令按鈕地數(shù)目。新增命令按鈕地名稱(Name)由系統(tǒng)自動給定(如mand3,mand4等),但是用戶可以重新設(shè)置。該屬性在設(shè)計與運(yùn)行階段可用。②Buttons屬性該屬性用于存取命令組中各按鈕地數(shù)組。該屬性數(shù)組在創(chuàng)建命令組時建立,用戶可以利用該數(shù)組為命令組中地命令按鈕設(shè)置屬性或調(diào)用其方法。屬性數(shù)組下標(biāo)地取值范圍應(yīng)該在1至ButtonCount屬性值之間。該屬性在設(shè)計時不可用。③Value屬性該屬性指定命令組地當(dāng)前狀態(tài)。該屬性地類型可以是數(shù)值型地(默認(rèn)情況),也可以是字符型地。若為數(shù)值型n,則表示命令組中地第n個命令按鈕被選中;若為字符型c,則表示命令組中Caption屬性值為c地命令按鈕被選中。若命令組中地某個按鈕有自己地Click事件,則一旦單擊該按鈕,就會優(yōu)先執(zhí)行為它單獨(dú)設(shè)置地代碼,而不會執(zhí)行命令組地Click事件代碼。該屬性在設(shè)計與運(yùn)行階段可用。例10.11演示命令組控件地使用特點(diǎn)。設(shè)計步驟如下:①建立應(yīng)用程序用戶界面。選擇"新建"表單,進(jìn)入表單設(shè)計器,增加一個Text1,一個命令組控件mandGroup1(如下圖所示)。②設(shè)置對象屬性,完成之后如下圖所示。③編寫程序代碼。*編寫mandGroup1地Click事件代碼:DOCASECASEThis.Value=1Thisform.Text1.Value="指針移到頂部命令:GoTop"CASEThis.Value=2Thisform.Text1.Value="指針上移命令:Skip-1"CASEThis.Value=3Thisform.Text1.Value="指針下移命令:Skip"CASEThis.Value=4Thisform.Text1.Value="指針移到底部命令:GoBottom"ENDCASE例10.1110.12圖像控件(Image) 圖像控件允許在表單中顯示圖片(.bmp文件)圖像控件與其它控件一樣,具有一整套地屬性,事件與方法程序。圖像控件在運(yùn)行時可以動態(tài)地改變它。用戶可以用單擊,雙擊與其它方式以交互地使用圖像(圖像文件地類型可以是.bmp,.ico,.gif,.jpg等)。常用屬性:①Picture屬性該屬性指定將要顯示地圖片(.bmp文件)。②BorderStyle屬性該屬性決定圖像是否具有可見地邊框。③Stretch屬性該屬性指定圖像地顯示方式:若該屬性設(shè)置為0(剪裁),則超出圖像控件范圍地那部分圖像將不顯示;若該屬性設(shè)置為1(恒定比例),則圖像控件將保留圖片地原有比例,并在圖像控件中顯示最大可能地圖片;若該屬性設(shè)置為2(伸展),則將圖片調(diào)整到正好與圖像控件地高度與寬度相匹配。例10.1210.13列表框控件(ListBox) 列表框控件提供一組條目(數(shù)據(jù)項),用戶可以從中選擇一個或多個條目。在一般情況下,列表框顯示其中地若干條目,用戶可以通過滾動條實(shí)現(xiàn)瀏覽其它條目。⑴常用屬性:①RowSourceType屬性與RowSource屬性RowSourceType屬性指明了列表框中條目數(shù)據(jù)源地來源,RowSource屬性指定了列表框地條目數(shù)據(jù)源。RowSourceType屬性地取值范圍及其意義如下表所示。屬性值說明0無(默認(rèn)值)。在運(yùn)行時,通過Additem方法添加列表框條目,通過RemoveItem方法移去列表框條目。1值。通過RowSource屬性手工指定具體地列表框條目。2別名。將表中地字段值作為列表框地條目。ColumnCount屬性指定需要取地字段數(shù)目,即列表框地列數(shù)。指定地字段總是表中最前面地若干字段。3SQL語句。將SQLSelect語句地執(zhí)行結(jié)果作為列表框條目地數(shù)據(jù)源。4查詢(.qpr),將.qpr文件執(zhí)行產(chǎn)生地結(jié)果作為列表框條目地數(shù)據(jù)源。5數(shù)組。將數(shù)組中地內(nèi)容作為列表框條目地來源。6字段。將表中地一個或幾個字段作為列表框條目地數(shù)據(jù)源。7文件。將某個驅(qū)動器與目錄下地文件名作為列表框地條目。在運(yùn)行時,用戶可以選擇不同地驅(qū)動器與目錄??梢岳梦募蚣苤付ㄒ徊糠治募?。8結(jié)構(gòu)。將表中地字段名作為列表框地條目,由RowSource屬性指定表。RowSource屬性值為空,則列表框顯示當(dāng)前表中地字段名清單。9彈出式菜單。將彈出式菜單作為列表框條目地數(shù)據(jù)源。②List屬性該屬性用以存取列表框中數(shù)據(jù)條目地字符串?dāng)?shù)組。該屬性在設(shè)計時不可用,在運(yùn)行時可讀寫。除了列表框,還適用于組合框。例如:讀取列表框中地第3個條目第1列上地數(shù)據(jù)項Var=Thisform.Mylist.List(3,1)或Var=Thisform.Mylist.List(3)重新將列表框中第3個條目第2列上地數(shù)據(jù)項設(shè)置為"yes" Thisform.Mylist.List(3,2)='yes'③ListCount屬性該屬性指明列表框中數(shù)據(jù)條目地數(shù)目。該屬性在設(shè)計時不可用,在運(yùn)行時只讀。除了列表框,還適用于組合框。④ColumnCount屬性該屬性指定列表框地列數(shù)。對于列表框與組合框,該屬性在設(shè)計與運(yùn)行時可用。除了列表框與組合框,還適用于表格。對于表格,該屬性在設(shè)計時可用,在運(yùn)行時可讀寫。⑤Value屬性該屬性返回列表框中被選中地條目。該屬性可以是數(shù)值型,字符型。若為數(shù)值型,則返回地是被選條目在列表框中地次序號;若為字符型,則返回地是被選條目地本身內(nèi)容,若列表框不止1列,則返回由BoundColumn屬性指明地列上地數(shù)據(jù)項。對于列表框與組合框,該屬性為只讀。⑥ControlSource屬性該屬性在列表框中地用法與在其它控件中地用法有所不同。在列表框中,用戶可通過該屬性指定一個字段或變量用以保存用戶從列表框中選擇地結(jié)果。⑦Selected屬性該屬性指定列表框中地某個條目是否處于選定狀態(tài)。也可用此屬性在多選列表框中找出所有被選地條目。該屬性在設(shè)計時不可用,在運(yùn)行時可讀寫。除了列表框,還適用于組合框。⑧MultiSelect屬性該屬性指定用戶能否在列表框控件中進(jìn)行多重選定。該屬性地設(shè)置情況如下表所示。該屬性在設(shè)計時可用,在運(yùn)行時可讀寫,但僅適用于列表框。屬性值說明0或.F.默認(rèn)值,不允許多重選擇1或.T.允許多重選擇。為選擇多個條目,按住Ctrl鍵并同時用鼠標(biāo)單擊條目⑵常用方法:①AddItem方法該方法為RowSourceType屬性為0地列表添加1項。②Clear方法該方法用于清除列表中地所有條目。⑽RemoveItem方法該方法從RowSourceType屬性為0地列表中刪除1項。④Requery方法該方法指明當(dāng)RowSource中地值改變時更新列表。例10.13求從2000年至2100年之間地所有閏年。n為閏年地條件是:若n能被4整除;若n不能被100整除或n能被400整除。設(shè)計步驟如下:①建立應(yīng)用程序用戶界面。選擇"新建"表單,進(jìn)入表單設(shè)計器。增加一個形狀控件Shape1,一個列表框控件List1,一個標(biāo)簽控件Label1,一個命令按鈕mand1(如下圖所示)。③編寫事件代碼。*編寫命令按鈕mand1地Click事件代碼:Thisform.List1.ClearFORn=2000TO2100IFn%4=0IFn%100!=0ORn%400=0l=1ELSEl=0ENDIFELSEl=0ENDIFIFl=1Thisform.List1.AddItem(Allt(Str(n)))ENDIFENDFOR例10.1310.14組合框(boBox)組合框與列表框類似,也是用于提供一組條目供用戶選擇,列表框具有地屬性,方法,組合框也同樣具有(除MultiSelect外),并且具有相類似地意義與使用方法。組合框與列表框地主要區(qū)別在于:對于組合框來說,通常只有一個條目是可見地,用戶可以單擊組合框上地下箭頭按鈕打開條目列表,以便從中選擇。因此,組合框能節(jié)省表單中地顯示空間。組合框不提供多重選擇地功能,無MultiSelect屬性。組合框有2種形式:下拉組合框與下拉列表框??赏ㄟ^設(shè)置Style屬性選擇所需要地組合框形式常用屬性:①InputMask屬性該屬性用于下拉組合框,指定允許鍵入地數(shù)值類型。②Style屬性該屬性指定組合框是下拉組合框還是下拉列表框。例10.1510.15表格控件(Grid)

表格控件是一種容器對象,其外形與Browse窗口相似,按行與列地形式顯示數(shù)據(jù)。一個表格對象由若干列對象(column)組成,每個列對象包含一個標(biāo)頭對象(Header)與若干控件。在此,表格,列,標(biāo)頭與控件都有自己地屬性,事件與方法。1.表格設(shè)計基本操作一旦指定了表格地列地具體數(shù)目(表格地ColumnCount屬性值不是-1),就可以有兩種方法來調(diào)整表格地行高與列寬。一是通過設(shè)置表格地HeaderHeight與RowHeight屬性調(diào)整行高,通過設(shè)置列對象地Width屬性調(diào)整列寬;二是讓表格處于編輯狀態(tài),然后通過鼠標(biāo)拖動操作可視地調(diào)整表格地行高與列寬。表格設(shè)計也可調(diào)用表格生成器來進(jìn)行。通過表格生成器能交互地快速設(shè)置表格地有關(guān)屬性,創(chuàng)建所需地表格。使用表格生成器生成表格地步驟是:先通過"表單控件"工具欄在表單上放置一個表格,然后用鼠標(biāo)右鍵單擊表格并在彈出地快捷菜單中選擇"生成器"命令,打開"表格生成器"對話框(如下圖所示),再在對話框內(nèi)設(shè)置有關(guān)地選項參數(shù)。當(dāng)設(shè)置完成之后按"確定"鍵關(guān)閉對話框返回時,系統(tǒng)會根據(jù)指定地選項參數(shù)設(shè)置列表框地屬性。2.常用地表格屬性①RecordSourceType屬性與RecordSource屬性。RecordSourceType屬性指明表格數(shù)據(jù)源地類型,RecordSource屬性指定表格數(shù)據(jù)源。RecordSourceType屬性地取值范圍及意義說明如下表所示。設(shè)置了表格地RecordSource屬性之后,就可通過ControlSource屬性為表格中地一列指定所需顯示地內(nèi)容,若未指定,則該列將顯示表格數(shù)據(jù)源中下一個還未顯示地字段。這兩個屬性在設(shè)計時可用,在運(yùn)行時可讀寫,但都僅適用于表格。屬性值說明0表。數(shù)據(jù)來源于由RecordSource屬性指定地表,該表能被自動打開。1(默認(rèn)值)別名。數(shù)據(jù)來源于已打開地表,由RecordSource屬性指定該表地別名。2提示。運(yùn)行時,由用戶根據(jù)提示選擇表格數(shù)據(jù)源。3查詢(.qpr)。數(shù)據(jù)來源于查詢,由RecordSource屬性指定一個查詢文件(.qpr文件)4SQL語句。數(shù)據(jù)來源于SQL語句,由RecordSource屬性指定一條SQL語句設(shè)置了表格地RecordSource屬性之后,就可通過ControlSource屬性為表格中地一列指定所需顯示地內(nèi)容,若未指定,則該列將顯示表格數(shù)據(jù)源中下一個還未顯示地字段。這兩個屬性在設(shè)計時可用,在運(yùn)行時可讀寫,但都僅適用于表格。②ColumnCount屬性該屬性指定表格地列數(shù),即一個表格對象所包含地列對象地數(shù)目。該屬性地默認(rèn)值為-1,此時表格將創(chuàng)建足夠多地列來顯示數(shù)據(jù)源中地所有字段。該屬性在設(shè)計時可用,在運(yùn)行時可讀寫。③LinkMaster屬性該屬性用于指定表格控件中所需顯示地子表地父表名稱。使用該屬性在父表與表格中顯示地子表(由RecordSource屬性指定)之間建立一對多地關(guān)聯(lián)關(guān)系。需在兩個表之間建立這種一對多關(guān)系,除了需設(shè)置該屬性之外,還應(yīng)使用ChildOrder與RelationalExpr兩個屬性。該屬性在設(shè)計時可用,在運(yùn)行時可讀寫,但是僅適于表格。④ChildOrder屬性該屬性用于指定為建立一對多地關(guān)聯(lián)關(guān)系,子表所需用到地索引。該屬性類似于SetOrder命令。該屬性在設(shè)計時可用,在運(yùn)行時只讀。⑤RelationalExpr屬性該屬性確定基于主表(由LinkMaster屬性指定)字段地關(guān)聯(lián)表達(dá)式。當(dāng)主表中地記錄指針移至新位置時,系統(tǒng)首先會計算出關(guān)聯(lián)表達(dá)式地值,然后再從子表中找出在索引表達(dá)式(當(dāng)前索引可由ChildOrder屬性指定)上地取值與該值相匹配地所有記錄,并將它們顯示于表格中。該屬性在設(shè)計時可用,在運(yùn)行時可讀寫。3.常用地列屬性①ControlSouce屬性該屬性指定需在列中顯示地數(shù)據(jù)源,常見地是表中地一個字段。若未設(shè)置該屬性,列中將顯示表格數(shù)據(jù)源(由RecordSource屬性指定)中下一個還未顯示地字段。②CurrentCortrol屬性該屬性指定列對象中地一個控件,該控件用以顯示與接收列中活動單元格地數(shù)據(jù)。列中非活動單元格地數(shù)據(jù)將在缺省地TextBox中顯示。4.常用地標(biāo)頭(Header)屬性①Caption屬性該屬性指定標(biāo)頭對象地標(biāo)題文本,顯示于列地頂部。②Alignment屬性該屬性指定標(biāo)題文本在對象中顯示地對齊方式。對標(biāo)頭對象與列對象,其設(shè)置值如表10-28所示。在默認(rèn)方式(屬性值為3)下,對齊方式基于控件數(shù)據(jù)源地數(shù)據(jù)類型:數(shù)值型數(shù)據(jù)右對齊,其它類型數(shù)據(jù)左對齊。屬性值說明屬性值說明0居中靠左1居中靠右2居中3(默認(rèn)值)自動4左上對齊5右上對齊6中上對齊7左下對齊8右下對齊9中下對齊例10.16設(shè)計一個操作數(shù)據(jù)表地表單,使之具有按記錄瀏覽,編輯地功能。設(shè)計步驟如下:①創(chuàng)建數(shù)據(jù)環(huán)境。選擇"新建"表單,進(jìn)入表單設(shè)計器。打開"數(shù)據(jù)環(huán)境設(shè)計器"窗口,在"數(shù)據(jù)環(huán)境"窗口中單擊鼠標(biāo)右鍵,在快捷菜單中選擇"添加",添加表單所需控制地數(shù)據(jù)

溫馨提示

  • 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

提交評論