程序設(shè)計表單設(shè)計_第1頁
程序設(shè)計表單設(shè)計_第2頁
程序設(shè)計表單設(shè)計_第3頁
程序設(shè)計表單設(shè)計_第4頁
程序設(shè)計表單設(shè)計_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學1程序設(shè)計表單設(shè)計本章的主要內(nèi)容:6.1案例引入 6.2表單設(shè)計基礎(chǔ)(重點)6.3利用表單設(shè)計器設(shè)計表單(重點) 6.4表單控件設(shè)計(重點、難點)第1頁/共103頁6.1案例引入

在學習表的操作的時候,我們對表中數(shù)據(jù)的操作一般都是在VisualFoxPro提供的界面中進行,例如我們在表的瀏覽窗口中瀏覽表中記錄,修改表中原有數(shù)據(jù),并可以追加新的記錄。我們?nèi)绾蚊撾xVisualFoxPro系統(tǒng)提供的操作界面,按照自己的需要定制更加友好的數(shù)據(jù)輸入和輸出界面呢?這就需要用到表單(Form)。VisualFoxPro中的表單類似于Windows中的窗口與對話框,利用表單、表單中的控件以及程序代碼,可以輸出數(shù)據(jù)、接受用戶的數(shù)據(jù)輸入,還可以對數(shù)據(jù)進行各種處理。第2頁/共103頁例如,我們要處理學生檔案表(xsda.dbf)中的數(shù)據(jù),就可以以學生檔案表為數(shù)據(jù)源建一個表單,通過這個表單,可以十分方便地對學生檔案表中的數(shù)據(jù)進行處理。在這一表單界面中,用戶只要單擊界面上的各個按鈕,就可以馬上實現(xiàn)相應操作,單擊“上一條記錄”、“下一條記錄”按鈕可以移動記錄指針,單擊“增加”按鈕可以添加新的記錄,單擊“編輯”按鈕可以編輯當前記錄,如圖6-2所示。

第3頁/共103頁

圖6-2通過表單來處理學生檔案表中的數(shù)據(jù)第4頁/共103頁6.2表單設(shè)計基礎(chǔ)1.使用“表單向?qū)А眲?chuàng)建表單

VisualFoxPro提供了兩種表單向?qū)韼椭脩魟?chuàng)建表單:“表單向?qū)А边m合于創(chuàng)建基于一個表的表單?!耙粚Χ啾韱蜗?qū)А边m合于創(chuàng)建基于兩個具有一對多關(guān)系的表的表單。調(diào)用表單向?qū)в袃煞N方法:

第5頁/共103頁

方法一:1)在“項目管理器”中選擇“文檔”選項卡,選擇其中的“表單”,如圖6-3所示。2)單擊“新建”按鈕,系統(tǒng)彈出“新建表單”對話框,如圖6-4所示。3)單擊“表單向?qū)А眻D標按鈕,打開“向?qū)нx取”對話框,如圖6-4所示。4)從列表框中選擇要使用的向?qū)?,然后單擊“確定”按鈕。5)接下來,系統(tǒng)打開相應的對話框,一步一步地向用戶詢問一些簡單的問題,并根據(jù)用戶的回答自動創(chuàng)建表單。第6頁/共103頁

方法二:菜單方式調(diào)用。在“文件”菜單中選擇“新建”選項,然后在打開的“新建”對話框中選擇“表單”文件類型并單擊“向?qū)А卑粹o?;蛘咴凇肮ぞ摺辈藛沃械摹跋?qū)А弊硬藛沃羞x擇“表單”選項。第7頁/共103頁

2.使用“表單設(shè)計器”(FormDesigner)創(chuàng)建表單可以使用以下三種方法中的一種來調(diào)用表單設(shè)計器:方法一:在項目管理器中調(diào)用。1)在“項目管理器”中選擇“文檔”選項卡,選定“表單”選項。2)單擊“新建”命令按鈕,系統(tǒng)彈出“新建表單”對話框。3)單擊“新建表單”按鈕。方法二:菜單方式調(diào)用。1)選擇“文件”菜單中的“新建”選項,打開“新建”對話框。2)選擇“表單”文件類型,然后單擊“新建文件”按鈕。

第8頁/共103頁

方法三:命令方式調(diào)用。在命令窗口中輸入CREATEFORM命令。無論采用上面哪種方法,系統(tǒng)將打開“表單設(shè)計器”窗口,如圖6-5所示。圖6-5表單設(shè)計器窗口第9頁/共103頁

3.使用“表單生成器”(FormBuilder)來創(chuàng)建表單在“表單設(shè)計器”的環(huán)境下,也可以調(diào)用表單生成器(如圖6-6所示)。其方法有以下三種:方法一:選擇“表單”菜單中的“快速表單”選項。方法二:單擊“表單設(shè)計器”工具欄中的“表單生成器”按鈕。方法三:右鍵單擊表單窗口,然后在彈出的快捷菜單中選擇“生成器”選項?!氨韱紊善鳌睂υ捒蛉鐖D6-6所示,其中,有兩個選項卡:“字段選取”和“樣式”。第10頁/共103頁6.2.2保存表單

若要保存設(shè)計好的表單,可以在“表單設(shè)計器”中選擇“文件”菜單中的“保存”選項,然后在打開的對話框中指定表單文件的文件名。設(shè)計的表單將被保存在一個表單文件(.scx)和一個表單備注文件(.sct)中。第11頁/共103頁6.2.3修改表單修改表單的方法有如下三種:方法一:在“項目管理器”中修改。1)在“項目管理器”中選擇“文檔”選項卡;2)如果表單類文件沒有展開,單擊“表單”圖標左邊的加號;3)選擇需要修改的表單文件,然后單擊“修改”按鈕。方法二:菜單方式調(diào)用。1)選擇“文件”菜單中的“打開”選項;2)在“打開”對話框中選擇需要修改的表單文件。方法三:命令方式調(diào)用。在命令窗口中輸入MODIFYFORM<表單文件名>。第12頁/共103頁6.2.4運行表單根據(jù)表單文件和表單備注文件的內(nèi)容產(chǎn)生表單對象就是運行表單,可以采用如下四種方法來運行表單文件:方法一:在項目管理器中運行。1)在“項目管理器”中選擇要運行的表單;2)單擊“項目管理器”窗口里的“運行”按鈕。方法二:在表單設(shè)計器環(huán)境下選擇“表單”菜單中的“執(zhí)行表單”選項,或單擊工具欄上的“運行”按鈕。第13頁/共103頁

方法三:選擇“程序”菜單中的“運行”選項,打開“運行”對話框。在對話框中指定要運行的表單文件,單擊“運行”按鈕。方法四:命令方式調(diào)用。在命令窗口中輸入以下命令:DOFORM<表單文件名>[NAME<變量名>]WITH<實參1>[,<實參2>,…][LINKED][NOSHOW]第14頁/共103頁6.3利用表單設(shè)計器設(shè)計表單6.3.1表單設(shè)計器簡介如果要完全按照自己的要求來設(shè)計表單,就需要用到表單設(shè)計器。表單設(shè)計器是系統(tǒng)提供給用戶用來設(shè)計表單的工作界面,利用它,用戶可以用一種可視化的方式來建立和修改表單。第15頁/共103頁

1.打開表單設(shè)計器通過如下方法中的任何一種,都可以打開表單設(shè)計器。1)單擊VisualFoxPro系統(tǒng)工具欄上的“新建”按鈕,在新建表單對話框選擇“新建表單”;2)在“項目管理器”中選定“表單”,并選擇“新建”按鈕;3)在命令窗口輸入命令CREATEFORM表單文件名;4)在命令窗口輸入命令MODIFYFORM表單文件名。第16頁/共103頁

2.表單設(shè)計器工作界面圖6-7表單設(shè)計器的常用工具第17頁/共103頁

3.表單的基本屬性1)表單的基本屬性表單的基本屬性如表6-2所示。表單的常用屬性說明如表6-3所示。2)表單的基本事件表單的常用事件如表6-4所示。3)表單的基本方法表單的基本方法如表6-5所示。第18頁/共103頁

4.表單基本屬性的設(shè)置方法1)利用屬性窗口進行設(shè)置打開“屬性”窗口的基本方法:用鼠標右擊設(shè)計器窗口中的新表單,在彈出的快捷菜單中選擇“屬性”菜單項,或直接單擊“窗體設(shè)計器”工具欄中的“屬性窗口”按鈕,便可出現(xiàn)“屬性”窗口,(如圖6-11所示)。設(shè)置屬性的方法:先在屬性列表中選定某個屬性名,然后在列表上方的編輯框中直接輸入或重新選定一個屬性值即可。有的屬性可能需要單擊屬性編輯框右側(cè)的編輯按鈕,在彈出的對話框中進行設(shè)置(如顏色、圖片等)。第19頁/共103頁

2)以代碼方式設(shè)置屬性可在表單或控件的事件代碼中設(shè)置表單的相關(guān)屬性。如:This.BackColor=RGB(0,0,255)3)鼠標拖動設(shè)置對于表單的Height(高度)和Width(寬度)屬性,可通過鼠標拖動的方式來設(shè)置。第20頁/共103頁

5.設(shè)置表單的數(shù)據(jù)環(huán)境數(shù)據(jù)環(huán)境是一個容器類對象。用戶可在數(shù)據(jù)環(huán)境中預定義表單中各控件的數(shù)據(jù)來源。一旦將數(shù)據(jù)表或視圖添加到表單的數(shù)據(jù)環(huán)境中,它們就會隨著表單設(shè)計器的打開或表單的運行而自動打開,當關(guān)閉或釋放表單時,它們也會隨之關(guān)閉?!皩傩浴贝翱谥?,對象的ControlSource(控件的數(shù)據(jù)源)屬性與數(shù)據(jù)環(huán)境中的所有字段相連。第21頁/共103頁

1)數(shù)據(jù)環(huán)境常用屬性如下:AutoOpenTables:當打開或運行表單時,控制是否打開數(shù)據(jù)環(huán)境中的表或視圖,默認值為“真”。AutoCloseTables:當關(guān)閉或釋放表單時,控制是否關(guān)閉由數(shù)據(jù)環(huán)境指定的表或視圖,默認值為“真”。InitialSelectedAlias:運行表單時選定的表或視圖,如果沒有指定,在運行時首先加到“數(shù)據(jù)環(huán)境”中的臨時表最先被選中。第22頁/共103頁

2)啟動數(shù)據(jù)環(huán)境設(shè)計器利用數(shù)據(jù)環(huán)境設(shè)計器能可視化地創(chuàng)建、修改表單的數(shù)據(jù)環(huán)境。打開數(shù)據(jù)環(huán)境設(shè)計器的方法:啟動“表單設(shè)計器”后,在選擇“顯示”菜單中的“數(shù)據(jù)環(huán)境”命令,打開數(shù)據(jù)環(huán)境設(shè)計器窗口。第一次打開數(shù)據(jù)環(huán)境設(shè)計器窗口時,要求打開一個數(shù)據(jù)表。可以向數(shù)據(jù)環(huán)境設(shè)計器窗口添加、移去數(shù)據(jù)表或者視圖。此外,還可在表單的右鍵快捷菜單中選擇“數(shù)據(jù)環(huán)境”命令和“表單設(shè)計器”工具欄中選擇“數(shù)據(jù)環(huán)境”按鈕。第23頁/共103頁

3)向數(shù)據(jù)環(huán)境中添加、移去數(shù)據(jù)表或視圖在數(shù)據(jù)環(huán)境設(shè)計器窗口中右擊,從彈出的快捷菜單中可以選擇“添加”(如圖6-12所示),來添加表或視圖;選中已經(jīng)添加進數(shù)據(jù)環(huán)境的表或視圖,右擊,從彈出的快捷菜單中可以選擇“移去”,可以移去表或視圖。第24頁/共103頁

4)設(shè)置數(shù)據(jù)表之間的關(guān)系如果兩張數(shù)據(jù)表已經(jīng)建立永久關(guān)系,則將這兩張數(shù)據(jù)表添加進數(shù)據(jù)環(huán)境時,將自動得到一個臨時關(guān)系。如果添加進“數(shù)據(jù)環(huán)境”中的兩張數(shù)據(jù)表事先沒有建立永久關(guān)系,可以在“數(shù)據(jù)環(huán)境設(shè)計器”中為它們設(shè)置臨時關(guān)系,方法是將主表字段拖動到子表相應的索引標志上,或者使用命令代碼段來實現(xiàn)。第25頁/共103頁

5)直接拖放數(shù)據(jù)至表單可以將數(shù)據(jù)直接從數(shù)據(jù)環(huán)境拖到表單中,這樣可以直觀、快速得到用于處理這些數(shù)據(jù)的對象,例如,將一個字符型字段從數(shù)據(jù)環(huán)境拖到表單中,可以得到一個標簽和文本框,用于顯示提示信息和字段中的數(shù)據(jù);將一張數(shù)據(jù)表從數(shù)據(jù)環(huán)境拖到表單中,可以得到一個表格。第26頁/共103頁

6)數(shù)據(jù)環(huán)境中對象的屬性設(shè)置數(shù)據(jù)環(huán)境默認的名字叫DataEnvironment,添加進來的數(shù)據(jù)表或視圖默認的名字依次為:Cursor1,Cursor2,……,每一個Cursor對象的Alias屬性就是它所對應的數(shù)據(jù)表或視圖,通過設(shè)置Cursor對象的Order屬性,可以指定表的主控索引。第27頁/共103頁

6.向表單中添加控件表單中可以有兩類控件,一類是內(nèi)容可以與后端的表、視圖或查詢中的字段或內(nèi)存變量相關(guān)聯(lián)的控件,稱為綁定型控件;另一類是內(nèi)容不與后端的表、視圖或查詢中的字段或內(nèi)存變量相關(guān)聯(lián)的控件,稱為非綁定型控件。第28頁/共103頁

不同的控件,其功能是不同的,對于某個特定的任務,我們應當選擇合適的控件來完成。添加控件的方法:1)使用“表單”菜單項中的快速表單向?qū)砑涌丶?)由數(shù)據(jù)環(huán)境直接添加控件。注意:字段類型與控件類型的對應關(guān)系。3)用“窗體控件”工具欄創(chuàng)建控件。第29頁/共103頁

7.設(shè)置控件的必要屬性及編寫事件代碼1)控件的通用屬性控件的通用屬性如表6-7所示。2)設(shè)置控件的必要屬性使用代碼設(shè)置對象屬性一般可分為三種情況。(1)一條語句設(shè)置一個對象的一個屬性。例如設(shè)置表單中文本框Text1的相關(guān)屬性:This.Text1.Enabled=.T.&&控件有效This.Text1.Value=DATE()&&顯示當前日期This.Text1.ForeColor=RGB(0,0,0)

&&黑色文本This.Text1.BackColor=RGB(128,128,128)&&灰色背景第30頁/共103頁

(2)使用WITH…ENDWITH語法結(jié)構(gòu)設(shè)置一個對象的多個屬性。例如同樣設(shè)置文本框的上述4個屬性,可以使用如下語句:WITHThis.Text1Enabled=.T.Value=DATE()ForeColor=RGB(0,0,0)第31頁/共103頁

BackColor=RGB(128,128,128)ENDWITH(3)使用容器對象的SETALL方法設(shè)置容器中所有對象的同一屬性。例如為了把表格控件中列對象的BackColor屬性設(shè)置為紅色,可以使用下列語句:Form1.Grid1.SetAll(“BackColor”,RGB(255,0,0),“Column”)第32頁/共103頁

8.在表單中調(diào)用對象的方法程序在VisualFoxPro中對象一經(jīng)創(chuàng)建,用戶便可以在應用程序的任何一個地方調(diào)用這個對象的方法。調(diào)用對象方法的語法格式如下:Parent.Object.Method例如下列語句調(diào)用方法程序來顯示表單,并將焦點設(shè)置在文本框上:第33頁/共103頁

ThisFormSet.Form1.ShowThisFormSet.Form1.Text1.SetFocus如果用戶調(diào)用的方法程序含有參數(shù),那么所需傳遞給方法程序的參數(shù)必須放在方法程序名后面的圓括號中。例如,F(xiàn)orm1.Show(nStyle),將參數(shù)nStyle傳遞給Form1的Show方法程序代碼。第34頁/共103頁

9.在表單中響應對象的事件當用戶的操作(鼠標動作或按鍵)激發(fā)了對象的某個事件,該事件中的過程代碼將被執(zhí)行。例如,當用戶單擊命令按鈕時,命令按鈕的Click事件過程代碼將被執(zhí)行。事件中的過程代碼也可以在程序運行時由程序調(diào)用而激活,這時事件代碼就如同一般過程一樣。例如我們需要在關(guān)閉表單Form1前自動執(zhí)行命令第35頁/共103頁

按鈕Command1的Click事件,我們可以在表單的卸載事件Destory中輸入如下語句:This.Command1.Click()10.保存、修改、運行和關(guān)閉表單第36頁/共103頁6.3.2設(shè)計一個簡單的表單下面我們使用表單設(shè)計器來設(shè)計一個只顯示一行提示文字的表單實例。我們假定要在表單上顯示的這行文字是“VisualFoxPro程序設(shè)計”,并假定我們要求的表單大小為寬300像素,高150像素。第37頁/共103頁

1.進入表單設(shè)計器單擊VisualFoxPro系統(tǒng)主界面工具欄上的“新建”按鈕,在“新建”對話框中選擇文件類型為表單,再選擇“新建文件”,就可以進入表單設(shè)計器。第38頁/共103頁

2.設(shè)置表單屬性如果進入表單設(shè)計器后屬性窗口并未顯示出來,只需要把鼠標指向表單后右擊,從彈出的快捷菜單中選擇“屬性”,屬性窗口就會出現(xiàn)。在屬性窗口中找到表單的Width屬性,將其設(shè)置為300,再單擊按鈕確認,如圖6-13所示。第39頁/共103頁

3.放入控件如果在表單設(shè)計器界面上看不到表單控件工具欄,可以單擊“顯示”菜單,選擇“表單控件工具欄”來調(diào)出表單控件工具。表單控件工具欄上的標簽按鈕,用來顯示文本信息。我們單擊這一工具,然后在表單上用鼠標拖出一個矩形區(qū)域,表示標簽控件占據(jù)的位置,就將一個標簽控件放置到了表單上,如圖6-14所示。一般情況下,這個標簽會有一個默認的名字,叫“Label1”,它顯示的內(nèi)容也是“Label1”。第40頁/共103頁

4.設(shè)置標簽屬性決定標簽顯示內(nèi)容的是它的Caption屬性?,F(xiàn)在已經(jīng)有兩個對象:表單Form1和標簽Label1,要對標簽進行屬性設(shè)置的話,先要在屬性窗口上部的組合框中選擇對象為標簽Label1,然后找到標簽的Caption屬性,將其設(shè)置為“VisualFoxPro程序設(shè)計”這樣一個字符串,過程如圖6-15所示。第41頁/共103頁

5.保存并運行表單表單設(shè)計完成后,單擊系統(tǒng)工具欄上的存盤按鈕,在存盤對話框中指定表單保存的位置和名稱,即可將表單文件保存起來,表單文件的擴展名是“.scx”,我們輸入表單存盤的主文件名為:exam1。存盤后,單擊工具欄上的運行按鈕,就可以運行表單,也可以用命令:DOFORM表單文件名來執(zhí)行表單。表單exam1運行后的界面如圖6-15所示。第42頁/共103頁

6.修改表單已經(jīng)保存好的表單可以再次打開進行修改,方法是直接打開表單文件或是在命令窗口中輸入命令:MODIFYFORM表單文件名這樣就會再次進入表單設(shè)計器,用戶可以對原有的表單進行修改。第43頁/共103頁6.4表單控件設(shè)計

6.4.1輸出類控件1.標簽標簽(Label)是一個圖形控件,常用于顯示文本信息。標簽在表單設(shè)計中常用于顯示提示信息或說明信息。如果要在表單上創(chuàng)建一個標簽控件,只需要單擊控件工具欄中的標簽按鈕,然后在表單中合適的位置單擊即可。一個標簽最多可容納256個字符。第44頁/共103頁

2.圖象、線條與形狀創(chuàng)建圖象(Image)的步驟如下:在表單上創(chuàng)建一個圖象控件,在屬性窗口選定Picture屬性,并通過文本框右側(cè)的對話按鈕選定一個圖象,該圖象即顯示在圖象控件處。線條控件(Line)用于在表單上畫各種類型的線條,包括斜線、水平線和垂直線。第45頁/共103頁

形狀控件(Shape)是可以顯示矩形、圓或橢圓的圖形控件,這些圖形不能直接修改。但是,因為形狀控件包括很多其他控制具有的屬性、事件和方法,所以形狀控件能響應事件,并且在運行時可動態(tài)地修改。Curvature屬性決定顯示什么樣的圖形,它的變化范圍是0到99。0表示無曲率,用來創(chuàng)建矩形;99表示最大曲率,創(chuàng)建圓和橢圓。[例題6.1]設(shè)計如圖6-16所示的應用程序封面。第46頁/共103頁6.4.2輸入類控件1.文本框文本框(Text)是一類基本控件,是最常用的控件。主要用于數(shù)據(jù)表中某些數(shù)據(jù)的輸入輸出或編輯,以及從窗口給內(nèi)存變量賦值等操作。文本框有自己的數(shù)據(jù)源,通常是以表的一個非備注字段或一個內(nèi)存變量作為自己的數(shù)據(jù)源。1)文本框的常用屬性、事件和方法如果設(shè)置了文本框的ControlSource屬性,則顯示在文本框中的值將保存在文本框的Value屬性中,同時保存在ControlSource屬性指定的變量或字段中。文本框的常用屬性如表6-11所示。第47頁/共103頁

2)文本框生成器文本框生成器是設(shè)置屬性的向?qū)?,使用生成器為控件設(shè)置常用的屬性非常方便。3)在文本框中接受用戶密碼在應用程序設(shè)計中,經(jīng)常需要獲得某些安全信息,如密碼。這時需要設(shè)置文本框的passwordchar屬性為“*”或其它一些字符,用文本框的Value和Text來接收這一信息,而不在屏幕上顯示其實際內(nèi)容。參見例題6.8,如圖6-30所示。第48頁/共103頁

2.列表框列表框(List)主要用來顯示選擇項,并且維護其ControlSource屬性所結(jié)合的數(shù)據(jù)。列表框控件可同時顯示圖形與項目文字,可以多重選擇,并具有移動項目位置的功能。列表框和下拉列表框(即Style屬性為2的組合框控件)中包含了一些選項和信息的可滾動列表。列表框中任何時候都能看到多個項,下拉列表框中只能看到一個項,可單擊向下按鈕來顯示可滾動的下拉列表框。第49頁/共103頁

1)列表框的常用屬性和方法程序列表框的Value屬性可以是數(shù)值型,也可以是字符型,默認值為數(shù)值型。如果RowSource是字符型值,并且要讓Value屬性反映列表中選定的字符串,則應將Value屬性設(shè)置為空字符串。(1)列表框的常用屬性常用列表框的屬性如表6-13所示。第50頁/共103頁

(2)列表框中常用的方法有:①AddItem:當RowSourceType屬性為0(默認值)或1時,給列表框添加一項。②RemoveItem:當RowSourceType屬性為0(默認值)或1時,從列表框中刪除一項。③Requery:當RowSource中的值改變時更新列表。與其他控件不同,使用列表框的Refresh方法無法刷新列表框數(shù)據(jù)源。第51頁/共103頁

2)列表框中的數(shù)據(jù)源類型列表框中的數(shù)據(jù)源類型由RowSourceType屬性決定,該屬性有以下幾種常用設(shè)置:(1)RowSourceType為0:無數(shù)據(jù)源,需通過編程向列表框中添加項。(2)RowSourceType為1:可用RowSource屬性指定多個要在列表框中顯示的值。(3)RowSourceType為2:別名,可以在列表框中包含打開表的一個或多個字段的值。字段的個數(shù)由列表框的ColumnCount屬性決定。第52頁/共103頁

如果ColumnCount為0或1,則列表框?qū)@示表中的第一個字段;如果ColumnCount為2,列表框?qū)@示表中的前兩個字段;依次類推。(4)RowSourceType為3:SQL語句,在RowSource屬性中應包含一個SELECT-SQL查詢語句。(5)RowSourceType為4:查詢,可以將查詢的結(jié)果填充到列表框,查詢是在查詢設(shè)計器中設(shè)計的。第53頁/共103頁

(6)RowSourceType為5:數(shù)組,即列表框中的項取自數(shù)組。RowSource屬性可以是表單或表單集中的數(shù)組屬性,也可以是應用查詢中的其它數(shù)組屬性。(7)RowSourceType為6:字段,列表項是一個字段或用逗號分隔的一系列字段。與RowSourceType值為2不同,此時,允許字段不按表中的順序來顯示。(8)RowSourceType為7:文件,將用當前目錄下的文件填充列表,并允許選擇不同的驅(qū)動器和目錄。此時RowSource屬性可設(shè)置為列表中顯示的文件類型。第54頁/共103頁

3)列表框的基本操作列表框包含以下基本操作:(1)使用列表框的計數(shù)屬性:ListCount。引用Listcount屬性可得到列表框中的項目總數(shù)。如要將List1中的列表項數(shù)目顯示在Text1文本框中,只需在表單的Init事件中添加以下代碼:This.text1.value=This.list1.listcount第55頁/共103頁

(2)訪問列表框中的某一項可使用List[n](3)添寫列表框中最頂端的數(shù)據(jù)項若用戶需將列表框中的最頂端數(shù)據(jù)項設(shè)置為默認選擇項,則可使用列表框的Topindex屬性,在列表框的Init事件中增加以下代碼:var=This.TopindexThis.Value=This.List[var]或This.Value=This.List[This.Topindex]第56頁/共103頁

(4)確認某一項被選中可使用Selected屬性。例如,選中第二項,其代碼為:Thisform.List1.Selected[2]=.T.4)列表框中多選項的選擇在缺省情況下,一次只能選定列表框中的一項,但通過修改MultiSelect屬性為真(.T.),使得用戶能夠同時選擇列表框中的多個列表項。第57頁/共103頁

[例題6.4]一個列表框列出一組學生信息,選擇其中的多名學生,用另一個列表框顯示所選的學生名單。允許重選,能正常結(jié)束。如圖6-23所示。操作步驟如下:〈1〉新建表單Form1。〈2〉打開表單的“數(shù)據(jù)環(huán)境設(shè)計器”窗口,將課程表xsda.dbf添加到表單中。〈3〉在表單中的合適位置分別添加如圖6-22所示的2個列表框控件list1、list2,2個命令按鈕,其部分屬性值的設(shè)置如表6-13示。第58頁/共103頁

〈4〉在表單form1的Init事件的代碼窗口輸入代碼:thisform.list1.columncount=5&&五列,有幾個字段就有幾列〈5〉在列表框List1的Interactivechange事件的代碼窗口輸入代碼:ThisForm.List2.AddItem(This.Value)Thisform.List2.Requery〈6〉在命令按鈕Command1的Click事件的代碼窗口輸入代碼:第59頁/共103頁

forn=ThisForm.List2.Listcountto1step-1ThisForm.List2.RemoveItem(n)endfor〈7〉在命令按鈕Command2的Click事件的代碼窗口輸入代碼:ThisForm.Release〈8〉保存表單。第60頁/共103頁

圖6-23列表框應用示例的設(shè)計界面圖6-23列表框應用示例運行結(jié)果第61頁/共103頁

3.組合框組合框(Combo)兼有列表框與文本框的功能,其功能和列表框類似,不同之處是列表框任何時候都顯示它的列表,而組合框平時只顯示一項,當用戶單擊它的向下按鈕后才顯示下拉列表。一般當選項很少時,用組合框,當選項較多時,用列表框。組合框和列表框的主要區(qū)別在于:第62頁/共103頁

(1)對于組合框來說,通常只有一個條目是可見的。用戶可以單擊組合框上的下拉箭頭按鈕打開條目列表,以便從中選擇。(2)組合框不提供多重選擇的功能,沒有MultiSelect屬性。(3)組合框有兩種形式:下拉組合框(Style屬性為0)和下拉列表框(Style屬性為2)。對下拉組合框,用戶既可以從列表中選擇,也可以在編輯區(qū)輸入。對下拉列表框,用戶只可從列表中選擇。第63頁/共103頁

組合框又分為下拉組合框(組合框的Style屬性值為0)和下拉列表框(組合框的Style屬性值為2),前者既可以在列表中選項,也可以在組合框中輸入一個值,而后者和列表框一樣只能在列表中選項。組合框的常用屬性如表6-15所示。2)將數(shù)據(jù)項添加到下拉組合框中用戶在使用列表框和下拉列表框時,只能選擇其中的選項,不能交互輸入新數(shù)據(jù)或進行編輯,而下拉組合框卻可以。第64頁/共103頁

為了使用戶能夠直接在下拉組合框中輸入數(shù)據(jù),應進行如下設(shè)置:(1)設(shè)置組合框的以下屬性值:Style屬性為:0RowSourceType屬性為:0(無)RowSource屬性為:(無)(2)在組合框的Valid事件的方法程序中使用AddItem方法添加所需的文本,代碼為:This.AddItem(This.Text)第65頁/共103頁

[例題6.5]學生檔案表xsda.dbf中,通過下拉組合框輸入學生的學號查詢并顯示學生的姓名、性別、出生日期、專業(yè)班級和簡歷等信息。如圖6-25所示。圖6-25組合框應用示例的運行結(jié)果第66頁/共103頁

操作步驟如下:〈1〉新建表單Form1?!?〉按圖在表單中加入五個文本框、1個組合框Combo1,1個命令按鈕Command1和1個標簽label1,如圖6-24所示,其部分屬性如表6-16所示。〈3〉打開表單的“數(shù)據(jù)環(huán)境設(shè)計器”窗口,將學生檔案表xsda.dbf添加到表單中。〈4〉在“數(shù)據(jù)環(huán)境設(shè)計器”窗口,將學生檔案表xsda.dbf中的字段姓名、性別、出生日期、專業(yè)班級和簡歷分別拖到表單中的合適位置,第67頁/共103頁

即分別添加了如圖6-24所示的標簽控件和對應的文本框控件、編輯框控件,其中文本框和編輯框的ReadOnly屬性均設(shè)置為.T.

〈5〉在表單Form1的Init事件的代碼窗口輸入代碼:*讓表單運行后,文本框、編輯框的值顯示為空gobottomskipThisForm.Refresh第68頁/共103頁

6〉在組合框Combo1的InteractiveChange事件的代碼窗口輸入代碼:locateforxsda.學號=This.valueThisForm.Refresh〈7〉在命令按鈕Command1的Click事件的代碼窗口輸入代碼:thisform.release〈8〉保存表單。第69頁/共103頁

4.編輯框編輯框(Edit)與文本框一樣,可以接受數(shù)據(jù)的輸入?/?輸出,但編輯框只能接受字符型數(shù)據(jù)。編輯框一般用來編輯長字段或備注型字段,允許自動換行,并能使用箭頭鍵、PageUp和PageDown鍵以及滾動條來瀏覽文本。1)編輯框常用屬性編輯框的屬性與文本框類似,表6-17列出了編輯框常見的屬性。第70頁/共103頁

[例題6.6]設(shè)計一表單如圖6-26所示,使用編輯框修改學生檔案表“xsda.dbf”的“簡歷”字段的內(nèi)容。在文本框中輸入學生的學號,若未找到該學號,則給出相應的提示信息,讓用戶重新輸入;若找到,則顯示學生姓名、班級和簡歷,單擊“修改”按鈕可以修改簡歷。圖6-26編輯框應用示例第71頁/共103頁

5.微調(diào)控件(Spinner)微調(diào)控件(Spinner)可以接收給定范圍內(nèi)的數(shù)值輸入。除了能夠用鼠標單擊控件右邊向上和向下的箭頭來增減其當前值外,還能像編輯框那樣用鍵盤直接輸入數(shù)值數(shù)據(jù)。1)微調(diào)控件的常用屬性微調(diào)控件的常用屬性如表6-19所示。2)微調(diào)非數(shù)值型的值微調(diào)控件值一般為數(shù)值型,可利用微調(diào)控件和文本框來微調(diào)多種類型的數(shù)值。第72頁/共103頁

[例題6.7]如圖6-29所示,?設(shè)計控件使用戶可微調(diào)一定范圍的日期。圖6-29微調(diào)控件使用實例設(shè)計界面和運行結(jié)果第73頁/共103頁

操作步驟如下:〈1〉在表單上放置一個標簽Label1,設(shè)置其Caption屬性為“日期”?!?〉在表單上放置一個文本框Text1,設(shè)置其Format屬性為“D”(數(shù)據(jù)類型為日期型)?!?〉在表單上放置一個微調(diào)控件Spinner1,調(diào)整微調(diào)控件的大小,使其只顯示按鈕。用戶可使用Shift+箭頭鍵小間距地調(diào)整按鈕的高度和寬度,使其與文本框相配。第74頁/共103頁

〈4〉在表單的Init事件中編寫如下代碼,使文本框顯示系統(tǒng)當天的日期:This.Text1.Value=Date(?)〈5〉在微調(diào)控件的UpClick事件中編寫如下代碼,表示當單擊向上按鈕時文本框顯示的日期減1:Thisform.Text1.Value=Thisform.Text1.Value?-?1Thisform.refresh第75頁/共103頁

〈6〉在微調(diào)控件的DownClick事件中編寫如下代碼,表示當單擊向下按鈕時文本框顯示的日期加1:Thisform.Text1.Value=Thisform.Text1.Value+1Thisform.refresh第76頁/共103頁6.4.3控制類控件1.命令按鈕命令按鈕控件(Command)主要用來控制程序代碼的執(zhí)行、操作。在表單中添加具有不同功能的命令按鈕,供用戶選擇各種不同的操作。如關(guān)閉表單、在表中移動記錄指針、保存編輯內(nèi)容、運行查詢、運行報表等。只要在命令按鈕的Click事件中輸入相應的操作代碼,當用戶單擊命令按鈕時,即可觸發(fā)Click事件,執(zhí)行Click中的代碼來完成指定操作。第77頁/共103頁

1)命令按鈕控件功能命令按鈕典型地用來啟動某個事件代碼、完成特定功能,如關(guān)閉表單、移動記錄指針、打印報表等2)命令按鈕控件常用屬性在表單中可以建立一個命令按鈕控件用于執(zhí)行命令。一般都將特定操作代碼放置在命令按鈕的click事件中,對命令按鈕的使用最重要的是編寫Click事件代碼。設(shè)計時經(jīng)常需要設(shè)置命令按鈕屬性。命令按鈕常用屬性如表6-20所示。第78頁/共103頁

3)設(shè)置命令按鈕的訪問鍵。訪問鍵可使用戶在表單中通過按ALT+訪問鍵來選擇一個控件。指定控件的訪問鍵的方法是:在控件的Caption屬性中,在作為訪問鍵的字母前鍵入一個反斜杠和一個小于符號(\<)。例如,設(shè)置命令按鈕Exit的訪問鍵為X,只需在其Caption屬性中輸入:E\<XIT用戶可按下ALT+X鍵快速地選擇該命令。第79頁/共103頁

[例題6.8]設(shè)計一個如圖6-30所示的密碼輸入窗口,要求最多允許輸入3次密碼。圖6-30命令按鈕應用設(shè)計界面第80頁/共103頁

操作步驟如下:〈1〉創(chuàng)建一個表單,然后在其中創(chuàng)建標簽和文本框各1個,命令按鈕2個?!?〉屬性設(shè)置如表6-21所示?!?〉Form1的Load事件代碼編寫如下:publici&&i用于計算輸入次數(shù)i=0〈4〉Command1的Click事件代碼編寫如下i=i+1第81頁/共103頁

IFTHISFORM.Text1.Value='888888'&&文本框輸入值與888888(預置的密碼)比較THISFORM.Release&&本表單從內(nèi)存釋放ELSEIFi<3&&允許輸入3次

MESSAGEBOX('密碼錯,請重新輸入!')THISFORM.Text1.Value=''&&為重新輸入清空文本框

THISFORM.Text1.Setfocus&&使文本框獲得焦點,就是使光標在其中閃爍

第82頁/共103頁

ELSEMESSAGEBOX('密碼錯,禁止進入系統(tǒng)!')THISFORM.ReleaseENDIF〈5〉Command2的Click事件代碼編寫如下THISFORM.Release第83頁/共103頁

2.命令按鈕組命令按鈕組(Commandgroup)控件是表單上的一種容器,它可以包含若干個命令按鈕,命令按鈕組控件是命令按鈕的集合。如果表單上有多個命令按鈕,可以考慮使用命令按鈕組。使用命令按鈕組可以使代碼更整潔,界面更加整齊。命令按鈕組與組內(nèi)的各個命令按鈕都有自己的屬性、事件和方法。1)命令按鈕組屬性常用命令按鈕組屬性如表6-22所示。第84頁/共103頁

2)設(shè)置命令按鈕組中各按鈕的屬性在表單設(shè)計器中,既可設(shè)置命令按鈕組的屬性,也可以設(shè)置其中各命令按鈕的屬性。有兩種方法可對單個按鈕的屬性進行編輯。(1)先用鼠標選擇命令組,再單擊右鍵選擇“編輯”選項,然后單擊命令組中任何一個按鈕,再單擊右鍵,選擇“屬性”選項。(2)用鼠標選擇命令組,再單擊右鍵選擇“屬性”選項,然后在“屬性”窗口上部的對象下拉框中選擇相應的按鈕。第85頁/共103頁

3)命令按鈕組生成器Click事件的判別方法:例如圖6-34所示,Commandgroup1的Click事件代碼編寫如下:DOCASECASETHIS.Value=1&&單擊Command1命令按鈕(下頁)返回.T.IFrecno()<reccount()&&防止下移出界

SKIPENDIFTHISFORM.Refresh第86頁/共103頁

CASETHIS.Value=2&&單擊Command2命令按鈕(上頁)返回.T.IFRECNO()>1&&防止上移出界

SKIP-1ENDIFTHISFORM.RefreshCASETHIS.Value=3&&單擊Command3命令按鈕(退出)返回.T.THISFORM.Release&&表單從內(nèi)存釋放

ENDCASE第87頁/共103頁

[例題6.10]設(shè)計一個瀏覽學生所在班級基本情況的程序,如圖6-35所示。學生基本情況包括:學號、姓名、班級。設(shè)計一個包含4個按鈕的命令按鈕組,1個獨立的命令按鈕,分別代表對記錄指針的操作,以改變顯示內(nèi)容,從左至右分別表示:“第一條記錄”、“上一條記錄”、“下一條記錄”、“最后一條記錄”和“關(guān)閉”。第88頁/共103頁

圖6-35命令按鈕組應用示例操作步驟:參考書上153頁。第89頁/共103頁

3.復選框復選框(Check)為表單添加“微調(diào)”控件,定義其主要屬性:允許同時選擇多項,所以復選框可以在表單中獨立存在,選項按鈕只能存在于它的容器選項按鈕組中。復選框主要反映某些條件是否成立,用于選擇取值為“真”或“假”的一種現(xiàn)象??梢詥螕羰髽俗箧I改變其值。復選框控件是一種數(shù)據(jù)綁定型控件,在數(shù)據(jù)編輯或條件選擇等方面有廣泛的應用。第90頁/共103頁

復選框的值Value屬性:0或.F.表示清除;1或.T.表示選定;2表示灰色狀態(tài)。其中數(shù)字為默認值。選項按鈕的Value屬性:1表示選定,0表示未選定。選項按鈕組(Optiongroup)的Value屬性:表明被選定按鈕的序號,默認為1。例如第2個按鈕被選定時Value值為2。第91頁/共103頁

[例題6.11]設(shè)計一個能編輯或瀏覽關(guān)于學生信息的4個數(shù)據(jù)庫表

溫馨提示

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

評論

0/150

提交評論