




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、visual foxpro 漳州師范學院計算中心 visual foxpro 6.0 程序設(shè)計與應(yīng)用教程程序設(shè)計與應(yīng)用教程 漳州師范學院漳州師范學院 計算中心計算中心 2003.92003.9 visual foxpro 漳州師范學院計算中心 第八章 visual foxpro 漳州師范學院計算中心 3 表單控件的常用屬性表單控件的常用屬性、方法、方法、 事件和事件和主要功能主要功能 本章學習要點本章學習要點 visual foxpro 漳州師范學院計算中心 4 簡簡 介介 vfp有有21個基類控件,可分為個基類控件,可分為5大類:大類: 1.輸出類輸出類:標簽、圖像、線條、形狀:標簽、圖像、
2、線條、形狀 2.輸入類輸入類:文本框、編輯框、微調(diào)控件、列表框、:文本框、編輯框、微調(diào)控件、列表框、 組合框組合框 3.控制類控制類:命令按鈕、命令按鈕組、復(fù)選框、:命令按鈕、命令按鈕組、復(fù)選框、 選項按鈕組、計時器選項按鈕組、計時器 4.多重容器類多重容器類:表格、頁框、:表格、頁框、container容器容器 5.連接類連接類:activex控件、控件、activex綁定控件、超級鏈接綁定控件、超級鏈接 控件控件 以上分類僅是按控件的主要功能,其實每個控件都 有很多特性,例如:一般的控件都可起到控制的作用, 因為都含有click事件。 visual foxpro 漳州師范學院計算中心 5
3、常用控件的公共屬性常用控件的公共屬性 name:控件的名稱,它是代碼中訪問控件的標識(表:控件的名稱,它是代碼中訪問控件的標識(表 單或表單集除外)。單或表單集除外)。 fontname:字體名。:字體名。 fontbold:字體樣式為粗體。:字體樣式為粗體。 fontsize:字體大小。:字體大小。 fontitalic:字體樣式為斜體。:字體樣式為斜體。 forecolor:前景色。:前景色。 height:控件的高度:控件的高度 width:控件的寬度??丶母叨群涂丶膶挾龋玻嚎丶膶挾?。控件的高度和控件的寬度,也 可在設(shè)計時通過鼠標拖曳進行可視化調(diào)整。可在設(shè)計時通過鼠標拖曳進行可視
4、化調(diào)整。 visible:控件是否顯示。:控件是否顯示。 enable:控件運行時是否有效。如果為:控件運行時是否有效。如果為 .t.,則表示控,則表示控 件有效,否則運行時控件不可使用。件有效,否則運行時控件不可使用。 visual foxpro 漳州師范學院計算中心 6 8.1輸出類控件輸出類控件 .1 標簽標簽(label)(label) 在表單中,標簽對象常被用來顯示一些說明信息、在表單中,標簽對象常被用來顯示一些說明信息、 對象標題等信息對象標題等信息 1.1.標簽的創(chuàng)建標簽的創(chuàng)建 (1)(1)利用表單控件工具欄利用表單控件工具欄 (2)(2)從數(shù)據(jù)環(huán)境的表中拖一字段
5、至表單上從數(shù)據(jù)環(huán)境的表中拖一字段至表單上 表單上創(chuàng)建的第表單上創(chuàng)建的第1 1個標簽名:個標簽名:label1label1 n屬性選介屬性選介 captioncaption:用于指定標簽對象的標題,是字符型數(shù)據(jù)用于指定標簽對象的標題,是字符型數(shù)據(jù) autosizeautosize:為為.t.t.時,標簽對象將根據(jù)其內(nèi)容自動地時,標簽對象將根據(jù)其內(nèi)容自動地 改變大小,缺省為改變大小,缺省為. .f.f. visual foxpro 漳州師范學院計算中心 7 wordwrapwordwrap:為為.t.t.時,標簽的內(nèi)容可實現(xiàn)自動換行時,標簽的內(nèi)容可實現(xiàn)自動換行 (auto size(auto si
6、ze應(yīng)為應(yīng)為. .t.)t.) backstylebackstyle:為為0 0時,使標簽對象透明,缺省為時,使標簽對象透明,缺省為1 1,不,不 透明透明 borderstyleborderstyle:指定標簽對象的邊框風格,為指定標簽對象的邊框風格,為0 0無邊框,無邊框, 為為1 1時,單線框時,單線框 n兩種設(shè)置屬性的方法兩種設(shè)置屬性的方法: 1.1.在屬性窗口中設(shè)置在屬性窗口中設(shè)置 2.2.用事件代碼設(shè)定用事件代碼設(shè)定 n說明說明:字符型屬性在屬性窗口中設(shè)置時,不用界限:字符型屬性在屬性窗口中設(shè)置時,不用界限 符號,而用代碼時則要。符號,而用代碼時則要。 如:如:thisform.t
7、hisform.label1label1.caption=“.caption=“學生學號學生學號” visual foxpro 漳州師范學院計算中心 8 8.1.2 圖像、線條、形狀圖像、線條、形狀 1.圖像圖像 圖像控件可支持的圖像文件類圖像控件可支持的圖像文件類 型有:型有:bmp、jpg、ico、gif等等 表單及表單中對象的圖像創(chuàng)建方法:表單及表單中對象的圖像創(chuàng)建方法: 利用表單控件工具欄利用表單控件工具欄 表單中創(chuàng)建的第表單中創(chuàng)建的第1個圖像名:個圖像名:image1 設(shè)置值設(shè)置值描述描述 0剪裁剪裁(默認默認) 圖像按剪貼方式來適應(yīng)控件圖像按剪貼方式來適應(yīng)控件 1等比填充等比填充
8、調(diào)整圖像大小來適應(yīng)控件,保持原比例調(diào)整圖像大小來適應(yīng)控件,保持原比例 2變比填充調(diào)整圖像大小來適應(yīng)控件,不保持原比例變比填充調(diào)整圖像大小來適應(yīng)控件,不保持原比例 屬性選介屬性選介 picture:在屬性窗口中為表單或?qū)ο笾付ㄒ粋€圖像文件在屬性窗口中為表單或?qū)ο笾付ㄒ粋€圖像文件 stretch:圖像如何調(diào)整大小適應(yīng)圖像如何調(diào)整大小適應(yīng)image控件控件 visual foxpro 漳州師范學院計算中心 9 2. 線條線條(line) 畫水平線畫水平線(height=0)、垂直線、垂直線(width=0)、斜線。、斜線。 在表單中創(chuàng)建的第在表單中創(chuàng)建的第1 個線條對象名:個線條對象名:line1
9、屬性選介屬性選介 lineslant:斜線方向?qū)傩孕本€方向?qū)傩? 或或 / ) 3. 形狀形狀(shape) 畫圓、橢圓、正方形、矩形、圓角矩形、圓角正方形畫圓、橢圓、正方形、矩形、圓角矩形、圓角正方形 在表單中創(chuàng)建的第在表單中創(chuàng)建的第1個形狀對象名:個形狀對象名:shape1 curvature:確定圓角大小。確定圓角大小。 curvaturewidth=heightwidthheight 0正方形正方形長方形長方形 1 99小圓角正方形小圓角正方形大圓角大圓角 正方形正方形圓圓 小圓角矩形小圓角矩形大圓大圓 角矩形橢角矩形橢圓圓 visual foxpro 漳州師范學院計算中心 10 例例
10、8.1 設(shè)計如圖所示的應(yīng)用程序封面設(shè)計如圖所示的應(yīng)用程序封面 表單文件表單文件p8-1.scx visual foxpro 漳州師范學院計算中心 11 說明說明:表單設(shè)置在桌面上,無標題欄,封面文字放:表單設(shè)置在桌面上,無標題欄,封面文字放 在水平中間,垂直在水平中間,垂直1/3處。必須將標簽的文字定位代處。必須將標簽的文字定位代 碼編寫在表單的碼編寫在表單的activate事件中,若編寫在表單的事件中,若編寫在表單的 init事件中,因此時表單尚未最大化,而表單大小與事件中,因此時表單尚未最大化,而表單大小與 位置要依表單大小確定的。位置要依表單大小確定的。 完成后再添加一個形狀完成后再添加
11、一個形狀 屬性參照屬性參照p196表表8-3設(shè)置設(shè)置 visual foxpro 漳州師范學院計算中心 12 8.2 輸入類控件輸入類控件 輸入類控件有:文本框、編輯框、列表框、和組合輸入類控件有:文本框、編輯框、列表框、和組合 框。其中列表框和下拉列表框只能讓用戶選擇數(shù)據(jù),框。其中列表框和下拉列表框只能讓用戶選擇數(shù)據(jù), 其余控件都可接受用戶從鍵盤輸入數(shù)據(jù)。其余控件都可接受用戶從鍵盤輸入數(shù)據(jù)。 8.2.1 文本框文本框(textbox) 文本框可供用戶輸入、編輯數(shù)據(jù)。文本框可供用戶輸入、編輯數(shù)據(jù)。 文本框可接受的數(shù)據(jù)類型有:文本框可接受的數(shù)據(jù)類型有:c、n、d、l型。型。 創(chuàng)建文本框?qū)ο蟮姆椒?/p>
12、有兩種:創(chuàng)建文本框?qū)ο蟮姆椒ㄓ袃煞N: (1) 利用表單工具欄的文本框按鈕利用表單工具欄的文本框按鈕 (2) 從數(shù)據(jù)環(huán)境中拖一字段至表單中從數(shù)據(jù)環(huán)境中拖一字段至表單中 visual foxpro 漳州師范學院計算中心 13 1.屬性選介屬性選介 value:指定文本框中對象的值,屬性值可以是:指定文本框中對象的值,屬性值可以是c、n、 d或或l型。型。 說明:文本框中只能輸入一段的數(shù)據(jù)說明:文本框中只能輸入一段的數(shù)據(jù)(只接受一次回車只接受一次回車) controlsource:文本框的控制數(shù)據(jù)源。:文本框的控制數(shù)據(jù)源。 format:指定:指定value值的約束格式。值的約束格式。 format
13、屬性是為屬性是為整個文本框整個文本框規(guī)定一個格式。規(guī)定一個格式。p197表表 設(shè)置值設(shè)置值描描 述述 a只允許字母字符只允許字母字符 k當光標移到文本框上時當光標移到文本框上時,框中數(shù)據(jù)就被選定框中數(shù)據(jù)就被選定 l在文本框中顯示數(shù)據(jù)的前導(dǎo)在文本框中顯示數(shù)據(jù)的前導(dǎo)0(取代空格取代空格)。只有數(shù)值可用。只有數(shù)值可用 t截去輸入字段中的前導(dǎo)空格和尾隨空格截去輸入字段中的前導(dǎo)空格和尾隨空格 !轉(zhuǎn)換小寫字母到大寫字母,僅用在字符型數(shù)據(jù)轉(zhuǎn)換小寫字母到大寫字母,僅用在字符型數(shù)據(jù) visual foxpro 漳州師范學院計算中心 14 inputmask(輸入掩碼):約束文本框中指定位置(輸入掩碼):約束文本
14、框中指定位置 字符的格式。字符的格式。 該屬性規(guī)定文本框中該屬性規(guī)定文本框中指定位置字符指定位置字符的格式。的格式。 顯示當前的貨幣符號顯示當前的貨幣符號$ 指定小數(shù)點的位置指定小數(shù)點的位置. 允許輸入數(shù)字、空格和正負號允許輸入數(shù)字、空格和正負號# 只允許輸入數(shù)字與正負號只允許輸入數(shù)字與正負號9 只允許輸入字母只允許輸入字母a 可鍵入任何字符可鍵入任何字符x 描述描述設(shè)置值設(shè)置值 ,分隔小數(shù)點左邊的數(shù)字串分隔小數(shù)點左邊的數(shù)字串 visual foxpro 漳州師范學院計算中心 15 例:設(shè)置文本框的例:設(shè)置文本框的value:字符型數(shù)據(jù):字符型數(shù)據(jù) (無無)、 inputmask:aaa 表示
15、文本框中只接受字母字符、且最多為表示文本框中只接受字母字符、且最多為3位位 例:設(shè)置文本框的例:設(shè)置文本框的value:字符型數(shù)據(jù):字符型數(shù)據(jù) (無無)、 inputmask:9999-9999999 表示文本框中只接受數(shù)字字符型數(shù)據(jù)表示文本框中只接受數(shù)字字符型數(shù)據(jù) visual foxpro 漳州師范學院計算中心 16 readonly:指定文本框是否允許編輯指定文本框是否允許編輯 .f.允許允許 (默認默認) .t.只讀只讀 alignment:指定文本框中數(shù)據(jù)對齊方式指定文本框中數(shù)據(jù)對齊方式, 0- 左對齊左對齊, 1-右對齊右對齊 , 2- 居中居中, 3- 自動自動(默認默認),此時
16、對齊方式與此時對齊方式與value的數(shù)據(jù)類型有的數(shù)據(jù)類型有 關(guān)關(guān),n型右對齊型右對齊,其余左對齊其余左對齊 。 passwordchar:指定文本框所鍵入字符的顯示符號,指定文本框所鍵入字符的顯示符號, 該屬性不影響該屬性不影響value的值。的值。 visual foxpro 漳州師范學院計算中心 17 2. 方法選介方法選介 setfocus:為文本框?qū)ο笤O(shè)置當前焦點:為文本框?qū)ο笤O(shè)置當前焦點 設(shè)置為焦點后操作所作的輸入都是針對它的設(shè)置為焦點后操作所作的輸入都是針對它的 如:如:thisorm.text1.setfocus 3. 事件選介事件選介 (1)when:文本框獲得焦點前發(fā)生:文本
17、框獲得焦點前發(fā)生 (2)gotfocus:文本框獲得焦點時發(fā)生:文本框獲得焦點時發(fā)生 (3)valid:文本框失去焦點前發(fā)生:文本框失去焦點前發(fā)生 (4)lostfocus:文本框失去焦點時發(fā)生:文本框失去焦點時發(fā)生 (5)keypress:當在文本框中按動鍵時發(fā)生:當在文本框中按動鍵時發(fā)生 (6) interactivatechange:當用戶用鍵盤當用戶用鍵盤 或鼠標改變或鼠標改變 文本框?qū)ο蟮闹禃r發(fā)生。文本框?qū)ο蟮闹禃r發(fā)生。 visual foxpro 漳州師范學院計算中心 18 4. 文本框生成器文本框生成器 生成器可用來設(shè)置生成器可用來設(shè)置常用屬性常用屬性。但不能設(shè)置所有屬性。但不能
18、設(shè)置所有屬性。 (且不是所有控件都有生成器。且不是所有控件都有生成器。) 例:文本框中的例:文本框中的value、controlsource、inputmask、 enabled.可用生成器來設(shè)置??捎蒙善鱽碓O(shè)置。 文本生成器的打開文本生成器的打開 右鍵單擊控件選擇右鍵單擊控件選擇 visual foxpro 漳州師范學院計算中心 19 文本生成器包括:格式、樣式、值三個選項卡文本生成器包括:格式、樣式、值三個選項卡 1. 格式選項卡格式選項卡 (1)數(shù)據(jù)類型數(shù)據(jù)類型:表示文本框的數(shù)據(jù)類型:表示文本框的數(shù)據(jù)類型 (2)僅字母表中的字符僅字母表中的字符:表示文本框中只允許字母字:表示文本框中只
19、允許字母字 符,符,(相當于相當于format中的格式碼中的格式碼“a”) (3)顯示前導(dǎo)零顯示前導(dǎo)零:顯:顯 示數(shù)字中小數(shù)點左示數(shù)字中小數(shù)點左 的前導(dǎo)的前導(dǎo)0。(相當相當 format中的格式碼中的格式碼 “l(fā)”) visual foxpro 漳州師范學院計算中心 20 (4)進入時選定進入時選定:表示當非空的文本框獲得焦點時,框:表示當非空的文本框獲得焦點時,框 中數(shù)據(jù)就被選定中數(shù)據(jù)就被選定(相當相當format中的格式碼中的格式碼“k”) (5)隱藏顯示內(nèi)容隱藏顯示內(nèi)容:表示當文本失去焦點時,框中所選:表示當文本失去焦點時,框中所選 定數(shù)據(jù)的選定狀態(tài)就被取消,否則,所選定仍將保定數(shù)據(jù)的選
20、定狀態(tài)就被取消,否則,所選定仍將保 持選定狀態(tài)持選定狀態(tài)( 相應(yīng)于相應(yīng)于hide selection屬性屬性) (6)在運行時啟用在運行時啟用:表示:表示 文本框是否可用;文本框是否可用;(選中選中 相當于相當于enable=.t.) (7)使其只讀使其只讀:表示是否:表示是否 禁止文本框中的數(shù)據(jù)禁止文本框中的數(shù)據(jù)(選選 中對應(yīng)中對應(yīng)readonly的的.t.) (8)輸入掩碼輸入掩碼:對應(yīng):對應(yīng) inputmask屬性。屬性。 visual foxpro 漳州師范學院計算中心 21 2. 樣式選項卡樣式選項卡 (1)特殊效果特殊效果:“三維三維” 和和“平面平面” (對應(yīng)對應(yīng) special
21、effect 屬性屬性 3d、plain) (2)邊框邊框:“單線單線”和和“無無”(對應(yīng)對應(yīng)borderstyle屬性的屬性的 單線框和無邊框單線框和無邊框 (3)字符對齊方式字符對齊方式:對應(yīng):對應(yīng)alignment屬性屬性 (4)調(diào)整文本框尺寸調(diào)整文本框尺寸:調(diào):調(diào) 整文本框的大小,使其整文本框的大小,使其 恰好容納數(shù)據(jù)恰好容納數(shù)據(jù)(應(yīng)與應(yīng)與 inputmast配合配合) visual foxpro 漳州師范學院計算中心 22 3.值選項卡值選項卡 對應(yīng)對應(yīng)controlsource屬性,可利用該字段名組合框?qū)傩?,可利用該字段名組合框 的列表指定表或視圖中的某一項。的列表指定表或視圖中的
22、某一項。 visual foxpro 漳州師范學院計算中心 23 例例8.2 某鐵路上共有某鐵路上共有n(1)個個 車站,需要準備多少種車票?車站,需要準備多少種車票? 設(shè)任兩個車站都有往返車票。設(shè)任兩個車站都有往返車票。 表單文件表單文件p8-2.scx command1command1的的clickclick事件代碼事件代碼 if thisform.text1.value=1 return endif s=0 for m=1 to thisform.text1.value for n=2 to thisform.text1.value s=s+1 endfor endfor thisfor
23、m.text2.value=s this.enabled=.f. thisform.command2.enabled=.t. command2command2的的clickclick事件代碼事件代碼 thisform.text1.value=0 thisform.text2.value=0 this.enabled=.f. thisform.command1. enabled=.t. visual foxpro 漳州師范學院計算中心 24 例例8.3 設(shè)計如圖表單,任設(shè)計如圖表單,任 意設(shè)置圓形的大小和顏意設(shè)置圓形的大小和顏 色。色。 表單文件表單文件p8-3.scx 命令按鈕確定命令按鈕確定
24、clickclick事件代碼事件代碼 thisform.shape1.height=val(thisform.text1.value) thisform.shape1.width=thisform.shape1.height if val(thisform.text2.value)255 return endif if val(thisform.text3.value)255 return endif if val(thisform.text4.value)255 return endif thisform.shape1.backcolor=rgb(val(thisform.text2.val
25、ue), val(thisform.text3.value),val(thisform.text4.value) return visual foxpro 漳州師范學院計算中心 25 8.2.2 編輯框編輯框 利用編輯框控件可實現(xiàn)文本數(shù)據(jù)的輸入與編輯,其利用編輯框控件可實現(xiàn)文本數(shù)據(jù)的輸入與編輯,其 中的文本可以是一段或多段。中的文本可以是一段或多段。 (編輯框常用于綁定備注型字段編輯框常用于綁定備注型字段) 1. 屬性選介屬性選介 value:用于指定編輯框的值,并在框中顯示。只能:用于指定編輯框的值,并在框中顯示。只能 c型??奢斎攵喽螖?shù)據(jù)。型??奢斎攵喽螖?shù)據(jù)。 scrollbar:為:為2
26、時,當編輯框包含的數(shù)據(jù)超出編輯框時,當編輯框包含的數(shù)據(jù)超出編輯框 時,出現(xiàn)垂直滾動條,為時,出現(xiàn)垂直滾動條,為0時無滾動條時無滾動條 controlsource:設(shè)置編輯框?qū)ο蟮臄?shù)據(jù)源。一般為:設(shè)置編輯框?qū)ο蟮臄?shù)據(jù)源。一般為 備注型字段備注型字段 visual foxpro 漳州師范學院計算中心 26 seltext:返回用戶在編輯框中所選定的文本內(nèi)容,該:返回用戶在編輯框中所選定的文本內(nèi)容,該 屬性不在屬性窗口中設(shè)置,在代碼中設(shè)置屬性不在屬性窗口中設(shè)置,在代碼中設(shè)置. 例:例:thisform.edit1.value=thisform.edit2.seltext thisform.edit1
27、.seltext=thisform.edit2.seltext 將將edit2中選中的內(nèi)容復(fù)制到中選中的內(nèi)容復(fù)制到edit1中。中。 selstart:指定用戶在文本框或編輯框中選定內(nèi)容的起:指定用戶在文本框或編輯框中選定內(nèi)容的起 始位置,第一個字符位置為始位置,第一個字符位置為0 sellength:指定:指定 返回用戶在文本框或編輯框中選定內(nèi)返回用戶在文本框或編輯框中選定內(nèi) 容的長度容的長度 例:選中表單編輯例:選中表單編輯edit1從第從第4個字符開始的個字符開始的6個字符個字符 thisform.edit1.setfocus 須先獲得焦點須先獲得焦點 thisform.edit1.se
28、lstart=3 thisform.edit1.sellength=6 visual foxpro 漳州師范學院計算中心 27 例例8.4 設(shè)計表單,實現(xiàn)在一個編輯框中查找另一個編設(shè)計表單,實現(xiàn)在一個編輯框中查找另一個編 輯框選定項內(nèi)容。輯框選定項內(nèi)容。 表單文件表單文件p8-4 .scx command1的的click事件代碼事件代碼 if !empty(thisform.edit1.seltext) findstring=alltrim(thisform.edit1.seltext) loc=at(findstring,thisform.edit2.value) if loc=0 this
29、form.label3.caption=未找到字符串未找到字符串 else thisform.label3.caption=找到字符串找到字符串 thisform.edit2.setfocus thisform.edit2.selstart=loc-1 thisform.edit2.sellength=len(findstring) endif else thisform.label3.caption=請在左邊編輯框中選定要查找的字符串請在左邊編輯框中選定要查找的字符串 endif visual foxpro 漳州師范學院計算中心 28 例例8.5 設(shè)計如圖表單,利用剪貼板實現(xiàn)文本框選定內(nèi)設(shè)計
30、如圖表單,利用剪貼板實現(xiàn)文本框選定內(nèi) 容復(fù)制到編輯框中,要求如下:容復(fù)制到編輯框中,要求如下: 在文本框中選定內(nèi)容后在文本框中選定內(nèi)容后 ,“復(fù)制復(fù)制”命令按鈕被激活命令按鈕被激活 若若“復(fù)制復(fù)制”命令按鈕按下,實現(xiàn)文本框選定內(nèi)容粘貼命令按鈕按下,實現(xiàn)文本框選定內(nèi)容粘貼 到編輯框位置。到編輯框位置。 表單文件表單文件p8-5 .scx visual foxpro 漳州師范學院計算中心 29 command1(command1(復(fù)制復(fù)制) )的的clickclick事件代碼事件代碼 _cliptext=thisform.text1.seltext this.enabled=.f. thisfor
31、m.command2.enabled=.t. command2(command2(粘貼粘貼) )的的clickclick事件代碼事件代碼 thisform.edit1.seltext=_cliptext thisform.edit1.setfocus text1(text1(文本框文本框) )的的mouseupmouseup事件代碼事件代碼 lparameters nbutton, nshift, nxcoord, nycoord *判斷判斷text1中是否有選定內(nèi)容,有則中是否有選定內(nèi)容,有則command1 if len(this.seltext)0 thisform.command1.e
32、nabled=.t. endif form1form1的的initinit事件代碼事件代碼 thisform.text1.setfocus _cliptext=&清空剪貼板,清空剪貼板,_cliptext是一系統(tǒng)是一系統(tǒng) 內(nèi)存變量,用于提供剪貼板內(nèi)容。內(nèi)存變量,用于提供剪貼板內(nèi)容。 將將 選選 定定 內(nèi)內(nèi) 容容 復(fù)復(fù) 制制 到到 剪剪 貼貼 板板 visual foxpro 漳州師范學院計算中心 30 8.2.3 列表框與組合框列表框與組合框 列表框與組合框都有一個可選擇單項或多項選項的列表框與組合框都有一個可選擇單項或多項選項的 列表,列表框全部顯示,組合框只顯示一項,只在單列表,列表框全部
33、顯示,組合框只顯示一項,只在單 擊右端向下按鈕才顯示列表,組合框分為下拉組合框擊右端向下按鈕才顯示列表,組合框分為下拉組合框 (可輸入可輸入)和下拉列表框和下拉列表框 1.屬性選介屬性選介 columncount: 指定列表框或組合框的列數(shù)指定列表框或組合框的列數(shù) style:組合框?qū)傩?,如下表:組合框?qū)傩?,如下表?屬性值組合框類型功能 0下拉組合框 即可在列表框中選項,也可在 組合框中輸入一個值 2下拉列表框 僅可在列表框中選項 visual foxpro 漳州師范學院計算中心 31 值值源類型源類型說說 明明 0無無缺省值,運行時用缺省值,運行時用additem或或addlistitem
34、方法添方法添 加列表項加列表項 1值值rowsource應(yīng)設(shè)置逗號分隔的數(shù)據(jù)項來填充列應(yīng)設(shè)置逗號分隔的數(shù)據(jù)項來填充列 2別名別名rowsource應(yīng)設(shè)置表名,表由數(shù)據(jù)環(huán)境提供,用應(yīng)設(shè)置表名,表由數(shù)據(jù)環(huán)境提供,用 columncount確定字段數(shù)確定字段數(shù) 3 sql語句語句 rowsource應(yīng)設(shè)置應(yīng)設(shè)置sql select命令以選出記錄,命令以選出記錄, sql select應(yīng)包括應(yīng)包括into子項,以創(chuàng)建一個臨子項,以創(chuàng)建一個臨 時表或表時表或表 4查詢查詢(.qpr)rowsource應(yīng)設(shè)置一個應(yīng)設(shè)置一個.qpr文件名文件名 rowsourcetype:指定列表框或組合框數(shù)據(jù)類型。共:指
35、定列表框或組合框數(shù)據(jù)類型。共 有有9類,如下表:類,如下表: visual foxpro 漳州師范學院計算中心 32 值值源類型源類型說說 明明 5數(shù)組數(shù)組rowsource應(yīng)設(shè)置數(shù)組名應(yīng)設(shè)置數(shù)組名 6字段字段rowsource應(yīng)設(shè)置逗號分隔的字段列表,應(yīng)設(shè)置逗號分隔的字段列表, 字段首有表名前綴,表來自數(shù)據(jù)環(huán)境字段首有表名前綴,表來自數(shù)據(jù)環(huán)境 7文件文件rowsource應(yīng)設(shè)置路徑,可用通配符或掩應(yīng)設(shè)置路徑,可用通配符或掩 碼,結(jié)果以目錄與文件名填充碼,結(jié)果以目錄與文件名填充 8結(jié)構(gòu)結(jié)構(gòu)rowsource應(yīng)設(shè)置表名,結(jié)果以該表字段應(yīng)設(shè)置表名,結(jié)果以該表字段 名來填充列名來填充列 9 彈出式菜
36、單彈出式菜單 為與以前版本兼容而設(shè)置為與以前版本兼容而設(shè)置 visual foxpro 漳州師范學院計算中心 33 rowsource:指定列表框數(shù)據(jù)源。必須與:指定列表框數(shù)據(jù)源。必須與 rowsourcetype 匹配匹配 listcount:返回組合框或列表框中:返回組合框或列表框中列表項的個數(shù)列表項的個數(shù)(行行 數(shù)數(shù)) 例例:thisform.combo1.listcount 可返回組合框中行數(shù)可返回組合框中行數(shù) value:返回組合框或列表框中選定行的內(nèi)容。對于多:返回組合框或列表框中選定行的內(nèi)容。對于多 列式列表框,選定項中的哪一列作為列式列表框,選定項中的哪一列作為value屬性值
37、,屬性值, 決定于決定于boundcolumn屬性。屬性。 tbo1.boundcolumn=5 thisform.print(tbo1.value) visual foxpro 漳州師范學院計算中心 34 displayvalue:返回組合返回組合框中顯示的文本內(nèi)容框中顯示的文本內(nèi)容 如如:thisform.print(bo1.displayvalue) multiselected:指定用戶是否在指定用戶是否在列表框列表框中進行多重選中進行多重選 擇。擇。( .t.允許、允許、.f.不允許,用不允許,用ctrl、shift配合配合) boundcolumn:指定哪一列作為指定哪一列作為val
38、ue屬性的值屬性的值,缺省,缺省 第第1列。列。 columncount:顯示的列數(shù)顯示的列數(shù) controlsource:指定指定value值值存儲的綁定字段存儲的綁定字段。 listindex:返回組合框或列表框中選定項的順返回組合框或列表框中選定項的順 序號序號 例:例:thisform.print(bo1.listindex) thisform.list1.listindex=2 visual foxpro 漳州師范學院計算中心 35 list:返回組合框或列表框行號,列號的內(nèi)容返回組合框或列表框行號,列號的內(nèi)容 格式:格式:object.list(行號行號,列號列號) 例:例:thi
39、sform.print(bo1.list(3,2) selected:當某一項被選中時,當某一項被選中時,selected屬性返回屬性返回.t., 否則為否則為.f. 格式:格式:object.selected(n)=lexpr 例:例:tbo1.selected(3)=.t. firstelement:當數(shù)據(jù)類型為當數(shù)據(jù)類型為數(shù)組數(shù)組時指定數(shù)組中第一時指定數(shù)組中第一 個顯示在列表框或組合框中的元素個顯示在列表框或組合框中的元素 例:例:tbo1.firstelement=2 numberofelements:當數(shù)據(jù)類型為當數(shù)據(jù)類型為數(shù)組數(shù)組,指定一個數(shù),指定一個數(shù) 組中有多少項用來填充組合框
40、或列表框組中有多少項用來填充組合框或列表框 例:例:bo1.numberofelements=3 visual foxpro 漳州師范學院計算中心 36 2. 方法選介方法選介 (1)additem:當組合框或列表框的:當組合框或列表框的 rowsourcetype屬性為屬性為0時,使用本方法程序時,使用本方法程序可在列可在列 表中添加一個新項表中添加一個新項 格式:格式:object.additem(citem,行號行號) (2)removeitem:當組合框或列表框的:當組合框或列表框的row source type屬性為屬性為0時,使用本方法程序時,使用本方法程序可在列表中刪除一可在列表
41、中刪除一 項項。 格式:格式:object.removeitem(n) 說明:說明:n為數(shù)值表達式,取值范圍為數(shù)值表達式,取值范圍1listcount (3)clear:清除列表框中的所有項:清除列表框中的所有項 visual foxpro 漳州師范學院計算中心 37 3.事件選介事件選介 (1)interactivechange:當列表框或組合框值發(fā)生改當列表框或組合框值發(fā)生改 變時觸發(fā)變時觸發(fā) (2)click:當用戶單擊列表框或組合框時觸發(fā)當用戶單擊列表框或組合框時觸發(fā) 【例例8.6】列表框的應(yīng)用:按下圖設(shè)計一個表單。要】列表框的應(yīng)用:按下圖設(shè)計一個表單。要 求表單運行時,求表單運行時,
42、list1列表框顯示列表框顯示stud表的所有字表的所有字 段,單擊左箭頭按鈕時,段,單擊左箭頭按鈕時,list1中選擇的字段加入到中選擇的字段加入到 list2中。中。表單文件表單文件p8-6 .scx visual foxpro 漳州師范學院計算中心 38 操作步驟:操作步驟: 按圖所示在表單中加入二個列表框、二個標簽、二按圖所示在表單中加入二個列表框、二個標簽、二 個命令按鈕。個命令按鈕。 在表單的在表單的init事件中加入如下代碼:事件中加入如下代碼: thisform.list1.value=0 thisform.list2.value=0 open database xsgl us
43、e student for i=1 to fcount() thisform.list1.additem(fields(i) next close database visual foxpro 漳州師范學院計算中心 39 在右向箭頭按鈕在右向箭頭按鈕(添加添加)command1的的click事事 件中加入如下代碼:件中加入如下代碼: if thisform.list1.value=0 return endif for i=1 to thisform.list2.listcount if thisform.list1.listitemthisform.list1.value= thisform.
44、list2.list(i) messagebox(已有該字段了已有該字段了) return endif endfor thisform.list2.addlistitem(thisform.list1. listitemthisform.list1.value) visual foxpro 漳州師范學院計算中心 40 在左向箭頭按鈕在左向箭頭按鈕(刪除刪除)command2的的click事件事件 中加入如下代碼:中加入如下代碼: if thisform.list2.value=0 or thisform.list2.listindex=0 return endif thisform.list2
45、.removeitemthisform.list2.value 在雙左向箭頭按鈕在雙左向箭頭按鈕(=60 =60 into into array xarray x thisform.text1.value=x(1)thisform.text1.value=x(1) thisform.list1.refreshthisform.list1.refresh thisform.text1.refreshthisform.text1.refresh visual foxpro 漳州師范學院計算中心 47 8.2.4 微調(diào)控件微調(diào)控件(sprinner) 用于接受給定范圍之內(nèi)的數(shù)值輸入,既可以鍵盤輸用于
46、接受給定范圍之內(nèi)的數(shù)值輸入,既可以鍵盤輸 入也可以單擊控件的上下箭頭按鈕增減當前值。入也可以單擊控件的上下箭頭按鈕增減當前值。 1. 1. 屬性選介屬性選介 valuevalue:表示微調(diào)控件的當前值:表示微調(diào)控件的當前值 keyboardhighvaluekeyboardhighvalue:設(shè)定鍵盤輸入數(shù)值上限:設(shè)定鍵盤輸入數(shù)值上限 keyboardlowvaluekeyboardlowvalue:設(shè)定鍵盤輸入數(shù)值下限:設(shè)定鍵盤輸入數(shù)值下限 spinnerhighvaluespinnerhighvalue:設(shè)定微調(diào)數(shù)值上限:設(shè)定微調(diào)數(shù)值上限 spinnerlowvaluespinnerlow
47、value:設(shè)定微調(diào)數(shù)值下限:設(shè)定微調(diào)數(shù)值下限 visual foxpro 漳州師范學院計算中心 48 increment increment:微調(diào)增量值:微調(diào)增量值 inputmaskinputmask:設(shè)置輸入掩碼:設(shè)置輸入掩碼 controlsource:設(shè)置微調(diào)控件的數(shù)據(jù)源,只能是:設(shè)置微調(diào)控件的數(shù)據(jù)源,只能是數(shù)數(shù) 值型值型的變量或字段。的變量或字段。 2. 事件事件 (1)downclick:按微調(diào)控件的向下按鈕時觸發(fā):按微調(diào)控件的向下按鈕時觸發(fā) (2)upclick:按微調(diào)控件的向上按鈕時觸發(fā):按微調(diào)控件的向上按鈕時觸發(fā) visual foxpro 漳州師范學院計算中心 49 8.
48、3 控件類控件控件類控件 8.3.1 命令按鈕命令按鈕 1. 常用屬性選介常用屬性選介 (1)caption:設(shè)置命令按鈕標題;可為命令按鈕設(shè)置:設(shè)置命令按鈕標題;可為命令按鈕設(shè)置 熱鍵,方法:在某字母前加熱鍵,方法:在某字母前加“ ”,用,用 alt 激活。激活。 如:如: (2)enabled:確定命令按鈕是否響應(yīng):確定命令按鈕是否響應(yīng)(不能響應(yīng)時,不能響應(yīng)時, 按鈕呈淺色按鈕呈淺色) (3)visible:確定命令按鈕是不可見。當不可:確定命令按鈕是不可見。當不可 見時,還可用代碼訪問。見時,還可用代碼訪問。 如如: mand1.visible=.t. visual foxpro 漳州師
49、范學院計算中心 50 (4)default:若表單上有不止一個命令按鈕,可將其中:若表單上有不止一個命令按鈕,可將其中 一個按鈕設(shè)為缺省按鈕,當所有的按鈕均為非焦點一個按鈕設(shè)為缺省按鈕,當所有的按鈕均為非焦點 時,按動時,按動enter,則執(zhí)行該按鈕的,則執(zhí)行該按鈕的click事件。事件。 (5)cancel:若該命令按鈕的:若該命令按鈕的cancel屬性為屬性為.t.,用戶按,用戶按 esc鍵將執(zhí)行該命令按鈕的鍵將執(zhí)行該命令按鈕的click事件。事件。 (6)picture:設(shè)置命令按鈕上顯示圖形。若要在命令按:設(shè)置命令按鈕上顯示圖形。若要在命令按 鈕上同時顯示圖文,可設(shè)置鈕上同時顯示圖文,
50、可設(shè)置picture與與caption屬性屬性 (7)tooltiptext:設(shè)置提示文本。:設(shè)置提示文本。(須須表單的表單的showtips 屬性為屬性為.t.) 2. 常用事件選介常用事件選介 (1)click:命令按鈕的單擊鼠標左鍵事件:命令按鈕的單擊鼠標左鍵事件 (2)rightclick:命令按鈕的單擊鼠標右鍵事件:命令按鈕的單擊鼠標右鍵事件 visual foxpro 漳州師范學院計算中心 51 8.3.2 命令按鈕組命令按鈕組 命令按鈕組是一組包含若干命令按鈕的容器。其中的命令按鈕組是一組包含若干命令按鈕的容器。其中的 各個按鈕均有各自的屬性、方法、事件。各個按鈕均有各自的屬性、
51、方法、事件。 第第1個被創(chuàng)建的命令按鈕組對象名:個被創(chuàng)建的命令按鈕組對象名:commandgroup1 1. 屬性選介屬性選介 (1)buttoncount:設(shè)置組容器所包含的:設(shè)置組容器所包含的 命令按鈕的個數(shù)命令按鈕的個數(shù) (2)value:若為數(shù)值時,單擊組控件內(nèi)某個按鈕,:若為數(shù)值時,單擊組控件內(nèi)某個按鈕, value將返回此命令按鈕的順序號;將返回此命令按鈕的順序號; 若為字符,單擊組控件內(nèi)某個命令按鈕,若為字符,單擊組控件內(nèi)某個命令按鈕,value將返將返 回此命令按鈕的回此命令按鈕的caption屬性值。屬性值。 visual foxpro 漳州師范學院計算中心 52 2. 命令
52、按鈕組生成器命令按鈕組生成器 (1)按鈕選項卡按鈕選項卡 buttoncount:指定所包含命令按鈕個數(shù):指定所包含命令按鈕個數(shù) 表格:包括各命令按鈕的表格:包括各命令按鈕的caption和和picture (2)布局選項卡布局選項卡 布局按鈕、按鈕間隔、邊框樣式布局按鈕、按鈕間隔、邊框樣式 visual foxpro 漳州師范學院計算中心 53 3. 命令按鈕組與命令按鈕命令按鈕組與命令按鈕 按鈕組容器按鈕組容器及其所包含的及其所包含的命令按鈕命令按鈕有各自獨立的屬有各自獨立的屬 性、方法、事件性、方法、事件 (1)容器組及命令按鈕的編輯容器組及命令按鈕的編輯 命令按鈕組命令按鈕組的編輯(屬
53、性、方法、事件)的編輯(屬性、方法、事件)單擊單擊 組容器中的組容器中的命令按鈕命令按鈕的編輯(屬性、方法、事件)的編輯(屬性、方法、事件) 屬性窗口中選擇屬性窗口中選擇 或或 單擊單擊 編輯編輯 選定命令按鈕選定命令按鈕 (2)為組容器中的某些命令按鈕設(shè)置共同屬性,如為組容器中的某些命令按鈕設(shè)置共同屬性,如 caption屬性值。屬性值。 單擊單擊 編輯編輯 shift+選定命令按鈕選定命令按鈕 visual foxpro 漳州師范學院計算中心 54 (3)click事件的區(qū)別事件的區(qū)別 若命令按鈕組及其所包含的各命令按鈕分別設(shè)置了若命令按鈕組及其所包含的各命令按鈕分別設(shè)置了 click事件
54、代碼,則用戶單擊組內(nèi)空白處,事件代碼,則用戶單擊組內(nèi)空白處,組控件組控件的的 click事件被觸發(fā);而若單擊組內(nèi)某命令按鈕,則該事件被觸發(fā);而若單擊組內(nèi)某命令按鈕,則該 命令按鈕命令按鈕的的click事件被觸發(fā)。事件被觸發(fā)。 若僅命令按鈕組設(shè)置了若僅命令按鈕組設(shè)置了click事件,則用戶不論單擊組事件,則用戶不論單擊組 控件的何處,都觸發(fā)組控件的控件的何處,都觸發(fā)組控件的click事件事件 visual foxpro 漳州師范學院計算中心 55 例例8.8在學生成績數(shù)據(jù)庫中增加在學生成績數(shù)據(jù)庫中增加user.dbf表,存表,存 放賬號與密碼,表結(jié)構(gòu):放賬號與密碼,表結(jié)構(gòu):user: 賬號賬號
55、c(6)、密碼、密碼 c(6),要求設(shè)計如圖表單實現(xiàn)按賬號核對密碼。密,要求設(shè)計如圖表單實現(xiàn)按賬號核對密碼。密 碼由數(shù)字字符構(gòu)成。碼由數(shù)字字符構(gòu)成。表單文件表單文件p8-8.scx combo1combo1的的validvalid事件代碼事件代碼 if this.listindexif this.listindex=0=0 messagebox messagebox(沒有此賬號,請重新輸入,或從組合框中選擇沒有此賬號,請重新輸入,或從組合框中選擇) this.displayvalue this.displayvalue= elseelse thisform thisform.text1.ena
56、bled=.t.text1.enabled=.t. endifendif commandgroup1commandgroup1的的clickclick事件代碼事件代碼 do casedo case case this.value=2case this.value=2 thisformthisform.release.release case this.value=1case this.value=1 if alltrim(thisform.text1.value)=alltrim if alltrim(thisform.text1.value)=alltrim(user.(user.密碼密碼)
57、 ) messagebox messagebox(歡迎使用本系統(tǒng)歡迎使用本系統(tǒng)) else else messagebox messagebox(密碼錯不能使用本系統(tǒng)!密碼錯不能使用本系統(tǒng)!) quitquit endif endif endcaseendcase thisformthisform.release.release visual foxpro 漳州師范學院計算中心 56 8.3.3 復(fù)選框復(fù)選框(checkbox) 復(fù)選框有兩種狀態(tài):復(fù)選框有兩種狀態(tài):.t.、.f. 。 復(fù)選框外形有兩種:方形、按鈕復(fù)選框外形有兩種:方形、按鈕 第一個創(chuàng)建的復(fù)選框名為第一個創(chuàng)建的復(fù)選框名為chec
58、k1 1. 屬性選介屬性選介 (1)style:屬性設(shè)置如表:屬性設(shè)置如表 style屬性值屬性值外外 觀觀選定狀態(tài)選定狀態(tài) 0-標準標準方框,其右側(cè)顯示方框,其右側(cè)顯示caption文本文本出現(xiàn)復(fù)選標記出現(xiàn)復(fù)選標記 1-按鈕圖形按鈕圖形 指定指定picture圖形圖形 圖形按鈕,圖形按鈕,caption文本在圖形文本在圖形 下方下方 按鈕呈按下狀按鈕呈按下狀 1-按鈕圖形按鈕圖形 picture未設(shè)置未設(shè)置 文本按鈕,文本按鈕,caption文本居中文本居中 visual foxpro 漳州師范學院計算中心 57 (2)value:設(shè)置或返回復(fù)選框選定狀態(tài)。:設(shè)置或返回復(fù)選框選定狀態(tài)。 若若
59、value設(shè)置為數(shù)值型:設(shè)置為數(shù)值型: 0 未選定、未選定、1 選定、選定、2 灰色灰色 若若value設(shè)置為邏輯型:設(shè)置為邏輯型: .f. 未選定、未選定、.t. 選定選定 (3)controlsource :設(shè)置復(fù)選框數(shù)據(jù)源,常綁定邏輯:設(shè)置復(fù)選框數(shù)據(jù)源,常綁定邏輯 型字段型字段 2. 事件選定事件選定 click:單擊復(fù)選框時觸發(fā):單擊復(fù)選框時觸發(fā) interactive change:復(fù)選框值發(fā)生改變時觸發(fā):復(fù)選框值發(fā)生改變時觸發(fā) visual foxpro 漳州師范學院計算中心 58 8.3.4 選項按鈕組選項按鈕組 選項按鈕組是包含選項按鈕的容器選項按鈕組是包含選項按鈕的容器(多選
60、一多選一),當選,當選 定某個按鈕,其他的選項按鈕自動便成為選定。定某個按鈕,其他的選項按鈕自動便成為選定。 1. 屬性選介屬性選介 (1) style:決定選項按鈕的外觀:決定選項按鈕的外觀 style屬性值外 觀選定狀態(tài) 0-標準圓圈,其右側(cè)顯示caption文本出現(xiàn)單選標記 1-按鈕圖形 指定picture圖形 圖形按鈕,caption文本在圖形 下方 按鈕呈按下狀 1-按鈕圖形 picture未設(shè)置 文本按鈕,caption文本居中 visual foxpro 漳州師范學院計算中心 59 (2)value:要區(qū)分選項按鈕組與組內(nèi)的選項按鈕:要區(qū)分選項按鈕組與組內(nèi)的選項按鈕 各自的屬性各
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電子產(chǎn)品回收市場潛力及競爭格局分析報告
- 聚焦2025:在線教育平臺用戶體驗優(yōu)化關(guān)鍵要素滿意度調(diào)研報告
- 2025年農(nóng)業(yè)科技成果轉(zhuǎn)化與農(nóng)業(yè)科技創(chuàng)新創(chuàng)業(yè)人才培養(yǎng)機制報告
- 擁抱科技-上市券商2025年一季報梳理分析
- 師德師風個人工作總結(jié)(3篇)
- 中國醫(yī)院住院部管理制度
- 南陽加油站油品管理制度
- 公司快遞費報銷管理制度
- 大健康公司財務(wù)管理制度
- 日間照料午餐管理制度
- 風電場葉片無人機巡檢作業(yè)技術(shù)導(dǎo)則
- AQ/T 6110-2012 工業(yè)空氣呼吸器安全使用維護管理規(guī)范(正式版)
- 課題研究學術(shù)報告職稱答辯
- PEP小學英語五年級下冊《Unit5-Read-and-write-Robin-at-the-zoo》教學設(shè)計
- 行政復(fù)議法-形考作業(yè)3-國開(ZJ)-參考資料
- 高三化學二輪復(fù)習限定條件下同分異構(gòu)體的統(tǒng)計與書寫課件
- 個體工商戶轉(zhuǎn)讓協(xié)議(2篇)
- 《裝配式成品支吊架安裝驗收規(guī)程》
- 支付令申請書模板:工程款支付令
- 養(yǎng)殖場消防知識講座
- 醫(yī)院感染風險評估表(適用于病房、換藥室、治療室、注射室)
評論
0/150
提交評論