第八章 表單設計
07-25
8.1 基本概念1.名詞解釋表單:即用戶與計算機進行交流的一種屏幕界面,用於數據的顯示、輸入、修改。該界面可以自行設計和定義,是一種容器類,可包括多個控制項(或稱對象)。表單集:可包含一張或多張表單的容器。數據環境:在打開或修改一個表單或報表時需要打開的全部表、視圖和關係。它以窗口形式(類似於資料庫設計器)反映出與表單有關的表、視圖、表之間關係等內容。可以用數據環境設計器來創建和修改表單的數據環境。2.表單設計界面主要包括: 表單嚮導、 表單設計器、 表單設計器工具欄、 表單控制項工具欄、 屬性窗口3.表單設計中常用的屬性、事件與方法介紹屬性、事件、方法 說明默認值AlwaysOnTop屬性 控制表單是否總是處在其他打開窗口之上 假(.F.)AutoCenter屬性 控制表單初始化時是否讓表單自動地在Visual FoxPro主窗口中居中 假(.F.)BackColor屬性 決定表單窗口的顏色 255,255,255BorderStyle屬性 決定表單是否有邊框,若有邊框,是單線邊框、雙線邊框,還是系統邊框。如果BorderStyle為3(系統),用戶可重新改變表單大小 3Caption屬性 決定表單標題欄顯示的文本 FormlClosable屬性 控制用戶是否能通過雙擊「關閉」框來關閉表單 真(.T.)MaxButton屬性 控制表單是否具有最大化按鈕 真(.T.)MinButton屬性 控制表單是否具有最小化按鈕 真(.T.)Movable屬性 控制表單是否能移動到屏幕的新位置 真(.T.)WindowState屬性 控制表單是最小化、最大化還是正常狀態 0 正常WindowType屬性 控制表單是非模式表單(默認)還是模式表單。如果表單是模式表單,用戶在訪問應用程序用戶界面中任何其他單元前必須關閉該表單 0 非模式Activate事件 當激活表單時發生Click事件 在控制上單擊滑鼠左鍵時發生DblClick事件 在控制上雙擊滑鼠左鍵時發生Destroy事件 當釋放一個對象的實例時發生Init事件 在創建表單對象時發生Error事件 當某方法(過程)在運行出錯時發生KeyPress事件 當按下並釋放某個鍵時發生Load事件 在創建表單對象前發生Unload事件 當對象釋放時發生RightClick事件 在單擊滑鼠右鍵時發生AddObject方法 運行時,在容器對象中添加對象Move方法 移動一個對象Refresh方法 重畫表單或控制,並刷新所有值Release方法 從內存中釋放表單Show方法 顯示一張表單8.2 創建表單可以用表單嚮導、表單設計器、表單生成器、編程四種方法創建表單。1. 利用嚮導創建表單(1) 創建單張表的表單:打開文件菜單 → 新建 → 表單 → 嚮導 [或從常用工具欄上選擇表單(F)] → 選擇表單嚮導 → 選取欄位 → 選擇樣式 → 選擇排序記錄 → 選擇保存方式 → 給出合適的文件名和保存位置。(2) 創建多個相關表的表單:打開文件菜單 → 新建 → 表單 → 嚮導 [或從常用工具欄上選擇表單(F)] → 選擇一對多表單嚮導 → 選取父表欄位 → 選取子表欄位 → 選定關係 → 選擇樣式 → 選擇排序記錄 → 選擇保存方式 → 給出合適的文件名和保存位置。注意:用嚮導創建的表單一般含有一組標準的命令按鈕。表單保存後系統會產生兩個文件:表單文件:擴展名為 .SCX表單備註:擴展名為.SCT2. 利用表單生成器創建表單文件菜單 → 新建 → 表單 → 新文件 → 表單菜單 → 快速表單命令 → 選擇欄位和樣式並確定之。注意:用生成器創建的表單不能直接產生一些命令按鈕。3. 利用設計器創建表單文件菜單 → 新建 → 表單 → 新文件 → 在表單設計器中,用表單設計器和表單控制項工具條上的按鈕創建所需的表單 → 保存表單 → 給出文件名和保存位置。注意:用設計器創建的表單,用戶必須為控制項設置有關的屬性及事件處理代碼。4. 利用編程的方法創建表單按照面向對象設計的方式,先可視化地利用類來創建表單,再將類代碼複製到程序窗口,適當添加部分設置系統環境的代碼,以程序文件的形式保存。5. 運行表單從常用工具欄上單擊運行按鈕(!)或從表單菜單中選擇 運行表單 命令或從命令窗口中輸入: DO FORM 表單文件名。8.3 向表單中添加控制項1. 常用控制項的作用標 簽: 用於保存不希望用戶改動的文本,常用來為添加的控制項寫標。文本框: 用於輸入或編輯表中的非備註型欄位,框中一般是單行的文本。編輯框: 用於輸入或編輯長欄位或備註欄位,框中可以有多行並有垂直滾動條。列表框: 用於顯示一組預定的、供用戶選擇的值,可以是一列或多列,可通過滾動條瀏覽列表信息。組合框: 一種下拉式的列表框,可以從中選擇一項或人工輸入一個值,兼有列表框和文本框的功能複選框: 用來顯示多個選項,可以選擇其中的一項或多項。表 格: 一個按瀏覽窗口樣式顯示數據的容器,常用來顯示一多關係中的子表。頁 框:一種用於創建選項卡式對話框的容器類,一個頁框可以包含多個頁面,但每次只能有一個活動頁面。微調控制:用於接受給定範圍內的數據輸入。命令按鈕:常用來啟動一個事件。命令按鈕組:用來把相關的命令按鈕編成組。選項按鈕組:用於顯示多個選項,只允許從中選擇一項。計時器: 可以在指定時間或按照設定的間隔運行進程,此控制項在運行時不可見。2. 用生成器向表單中添加控制項:打開所需表單,進入表單設計器 → 從表單控制項工具欄上選擇生成器鎖定按鈕 → 從該工具欄上選擇所需控制項並放在表單上 → 在生成器的選項卡中填上有關信息。3. 利用數據環境在表單中創建控制項:從數據環境中直接將所需欄位或表拖到正在設計的表單中,VFP 會自動生成符合要求的控制項。若要創建一個將下面的項拖動到表單表格 表複選框 邏輯型欄位編輯框 備註型欄位OLE 綁定型控制 通用型欄位文本框 其他類型的欄位4. 自定義方式創建控制項打開表單設計器 → 根據需要從工具欄上單擊某個控制項 → 用滑鼠直接在表單上畫出控制項外形 → 在屬性窗口設置該控制項的各項屬性。5.使用類瀏覽器向表單中添加控在表單設計器中打開表單 → 在類瀏覽器中打開類庫文件,其中應包含有添加到表單中的對象的類 → 從類列表中,選擇類名,然後把類圖標拖放到表單上。類圖標位於類列表的上方。附註:如果要把類添加到表單的容器對象上,則需把類圖標拖放到表單中一個區域,然後把對象剪切並粘貼到所要的容器上。6. 控制項常用的屬性、事件與方法屬性說 明AutoSize屬性 指定控制項是否依據其內容自動調節大小ButtonCount屬性 指定命令組或選項組中的按鈕數Caption屬性 指定在對象標題中顯示的文本ControlCount屬性 指定容器對象中控制項的數目ControlSource屬性 指定與對象綁定的數據源Enabled屬性 指定對象能否響應用戶引發的事件Filter屬性 排除不滿足條件的記錄。篩選條件由給定表達式指定Increment屬性 單擊上箭頭或下箭頭時,微調控制項中數值增加或減少的量InputMask屬性 指定控制項中數據的輸入格式和顯示方式MoverBars屬性 指定是否在列表框控制項中顯示移動按鈕Name屬性 指定在代碼中引用對象時所用的名稱Parent屬性 引用一個控制項的容器對象ReadOnly屬性 指定是否可以編輯控制項或者更新與臨時表對象相關聯的表或視圖RecordSourceType屬性 指定如何打開填充表格控制項的數據源RowSource屬性 指定組合框或列表框控制項中值的來源ToolTipText屬性 為一個控制項指定作為「工具提示」出現的文本Value屬性 指定控制項的當前狀態Click事件 在控制項上單擊滑鼠左鍵時方生DblCick事件 在控制項上雙擊滑鼠左鍵時方生Destroy事件 當釋放一個對象的實例時發生Init事件 在創建對象時發生InteractiveChange事件 當更改控制項的值時發生Load事件 在創建對象前發生RightClick事件 在單擊右鍵時發生Addobject方法 運行時在容器對象中添加對象Clear方法 清除組合框或列表框控制項的內容Refresh方法 重畫表單或控制項,並刷新所有值KeyPress事件 當按下並釋放某個鍵時發生8.4 修改表單布局打開表單,進入表單設計器,用表單設計器工具欄或顯示菜單中的各命令修改表單。1. 選擇、移動和縮放控制項選擇: 用滑鼠單擊所需控制項移動: 選定控制項,用滑鼠拖動到新位置或從編輯菜單中選擇剪切再在新位置粘貼縮放: 選定控制項,用滑鼠拖動尺寸柄直至所需大小鬆開2. 複製和刪除表單控制項複製 : 選定表單上現有的控制項 → 從編輯菜單中選擇複製 → 從編輯菜單中選擇粘貼。刪除: 選定表單上現有的控制項 → 按 Delete 鍵。3. 控制項的布局可利用布局工具欄使表單上的所有控制項排列整齊、大小合理、對稱美觀。8.5 定製表單1. 改變文本的字體和大小打開表單,進入表單設計器 → 選擇要修改的控制項 → 打開屬性窗口 → 設置字體大小和字形,如 FontName 、FontSize、FontBold。2.向表單中添加線條和形狀選擇工具欄上的線條或形狀按鈕,在表單中所需位置拖動滑鼠,畫出線條或圖形,圖形界於正方形和圓形、長方形和橢圓形之間(屬性窗口中的 Curvature 值從 0~99 )。線條和形狀的顏色可以在屬性窗口中設定。3.向表單中添加圖形從表單控制項工具欄中選擇圖象 → 在屬性窗口中選擇 Picture 屬性單擊該欄的…按鈕 → 在打開對話框中找到所需的圖象文件 → 確定4. 設置一個表單的前景和背景顏色用調色板工具欄或通過屬性窗口中的 ColorSource 屬性來設置。5. 創建表單集啟動表單設計器 → 從表單菜單中選擇創建表單集 → 設計第一張表單 → 從表單菜單中選擇添加新表單 → 設計另一張表單 → 添加新表單 → 設計另一張表單 ……8.6 設計自定義表單的一般方法1. 與數據表綁定型表單(1) 生成基本表單:新建 → 表單 → 新文件 → 進入表單設計器 → 表單菜單 → 快速表單 → 選定資料庫(表) → 選定輸出欄位 → 選定樣式 → 確定。(2) 修改基本表單:1) 用滑鼠拖動來調整各欄位的布局(排列位置、大小、對齊等);2) 在屬性窗口中設置表單中各對象的屬性:表單(form1):caption: 輸入表單的中文標題backcolor: 設置表單背景顏色autocenter: 使表單運行時自動處於屏幕中央visible: 設置表單在運行時是否可見,一般採用 .T.各欄位控制項:autosize: 根據所容納的內容自動調整大小, 常採用 .T.backstyle: 欄位標題一般可設為透明,其它可設為不透明caption: 輸入中文的欄位標題fontname: 設置控制項字體fontsize: 設置字體大小forecolor : 設置字體顏色(3) 根據需要添加控制項:1) 利用數據環境:打開基本表單 → 單擊滑鼠右鍵 → 從快捷菜單中選擇數據環境 → 將所需欄位拖到表單中 → 用標籤控制項為欄位添加標題(先畫出標籤控制項再更改標籤的 caption 屬性)。2) 利用表單控制工具欄:打開基本表單 → 單擊工具欄中所需控制項 → 在表單中畫出控制項 → 選定控制項 → 單擊滑鼠右鍵 → 從快捷菜單中選擇生成器… → 在對話框中選好所需各項 → 確定。(4). 添加命令按鈕根據需要添加適當數量的命令按鈕(用單個命令按鈕或用命令組均可),設置命令組時要利用命令組生成器(單擊右鍵,從中選擇生成器)。更改命令按鈕的標題,需用熱鍵時在標題後加上 (<A )即可。如: Caption 中為 : 退出(<X ), 按鈕上則顯示 退出(X)(5). 為命令按鈕編寫事件代碼根據命令按鈕的標題所代表的功能在代碼窗口中填寫代碼。幾個常用按鈕的代碼如下表。上一個If.not.bof()Skip -1EndifThisform.refresh下一個If.not.eof()SkipEndifThisform.refresh第一個Go topThisform.refresh最後一個Go bottomThisform.refresh退出Thisform.release2.與數據表無關型表單新建 → 表單 → 新文件 → 進入表單設計器 → 添加控制項 → 設置屬性 → 編寫代碼
推薦閱讀:
推薦閱讀:
※大小戶型衣櫃設計 比衣帽間實用省錢
※這麼漂亮的鞋櫃設計,值得收藏了!
※最佳核心訓練計劃設計(上)——譯自 美國國家體能協會《運動表現訓練雜誌》
※海報設計| 海報創意的多種表現形式