版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第7章 用戶界面設(shè)計(jì) 第第7章章 用戶界面設(shè)計(jì)用戶界面設(shè)計(jì) 7.1 常用標(biāo)準(zhǔn)控件常用標(biāo)準(zhǔn)控件 7.2 菜單設(shè)計(jì)菜單設(shè)計(jì) 7.3 通用對(duì)話框通用對(duì)話框 7.4 工具欄工具欄7.5 綜合應(yīng)用綜合應(yīng)用 7.1 常用標(biāo)準(zhǔn)控件常用標(biāo)準(zhǔn)控件7.1.1 單選按鈕、復(fù)選框和框架單選按鈕、復(fù)選框和框架7.1.2 列表框和組合框列表框和組合框7.1.3 滾動(dòng)條滾動(dòng)條7.1.4 定時(shí)器定時(shí)器7.1.5 圖片框和圖像框圖片框和圖像框7.1.1 單選按鈕、復(fù)選框和框架單選按鈕、復(fù)選框和框架1單選按鈕2復(fù)選框 3框架1單選按鈕單選按鈕也稱為選擇按鈕,一般都是成組出現(xiàn),一組單選按鈕控件可以提供一組彼此互相排斥的選項(xiàng),實(shí)現(xiàn)一
2、種“單項(xiàng)選擇”的功能。單選按鈕的常用事件為click。 單選按鈕常用屬性(1) caption屬性。用于設(shè)置單選按鈕上顯示的標(biāo)題。 alignment屬性。用于設(shè)置單選按鈕標(biāo)題的對(duì)齊方式,可以在設(shè)計(jì)時(shí)設(shè)置,也可以在運(yùn)行期間設(shè)置。其取值0(默認(rèn)值)表示控件鈕在左邊,標(biāo)題顯示在右邊;其取值1表示控件鈕在右邊,標(biāo)題顯示在左邊。 value 屬性。默認(rèn)屬性,其值為邏輯類型,表示單選按鈕的狀態(tài),可以在設(shè)計(jì)時(shí)設(shè)置,也可以在運(yùn)行期間設(shè)置。其取值true表示單選鈕被選定;其取值false(默認(rèn)值)表示單選鈕未被選定。 style 屬性。用來(lái)指定單選按鈕的顯示方式,用于改善視覺(jué)效果。其取值0(默認(rèn)值)表示標(biāo)準(zhǔn)方
3、式 ;其取值1表示圖形方式。當(dāng)該屬性設(shè)置為1(graphical)時(shí),可以在picture、downpicture和disabled picture中分別設(shè)置不同的圖標(biāo)或位圖,用三種不同的圖形分別表示未選定、選定和禁止選擇。單選按鈕常用屬性(2) picture屬性。用來(lái)返回或設(shè)置未選定控件時(shí)的圖片??梢栽谠O(shè)計(jì)時(shí)設(shè)置,也可以在運(yùn)行期間通過(guò)loadpicture函數(shù)設(shè)置。如果caption屬性有值,則同時(shí)顯示圖片和文字;如果圖片太大,則自動(dòng)剪裁。 downpicture屬性。用來(lái)返回或設(shè)置選定控件時(shí)的圖片。如果該屬性為空,則按鈕被按下時(shí),只顯示picture屬性指定的圖片;如果picture屬性
4、和disabled picture屬性為空,則只顯示文字。 disabled picture屬性。用來(lái)返回或設(shè)置禁止選擇時(shí)的圖片,即控件的enabled屬性為false時(shí)控件的圖片。例7.1 設(shè)計(jì)一個(gè)窗體,模擬單選題測(cè)試。 private sub command1_click() if option2.value=true then msgbox 恭喜,你答對(duì)了 else msgbox 真遺憾,你選錯(cuò)了 end ifend subprivate sub form_load() option1.value=false option2.value=false option3.value=false
5、 option4.value=falseend sub 2復(fù)選框復(fù)選框主要用于對(duì)某種或幾種狀態(tài)進(jìn)行開(kāi)關(guān)選擇。復(fù)選框列出可供用戶選擇的選項(xiàng),用戶根據(jù)需要選定其中的一項(xiàng)或多項(xiàng)。復(fù)選框的常用屬性: caption屬性。caption屬性是用來(lái)設(shè)置復(fù)選框上顯示的文本。 value屬性。value屬性是默認(rèn)屬性,其值為整型,表示復(fù)選框的狀態(tài)。其取值0 vbunchecked表示未被選定,是默認(rèn)值;其取值1 vbchecked表示被選定;其取值2 vbgrayed表示灰色,禁止用戶選擇。 復(fù)選框的常用事件為click。例7.2 設(shè)計(jì)一個(gè)窗體,模擬多項(xiàng)選擇題測(cè)試。 private sub command1_
6、click() if check1.value=1 and check3.value=1 and check2.value=0 and _ check4.value=0 then msgbox 恭喜,你選對(duì)了! else msgbox 很遺憾,你選錯(cuò)了! end ifend sub3框架框架是一個(gè)容器控件,用于將屏幕上的對(duì)象分組。主要用于單選按鈕分組。在窗體上創(chuàng)建框架及其內(nèi)部控件時(shí),必須先建立框架,然后在其中建立各種控件。 框架的常用屬性: caption屬性。用來(lái)設(shè)置框架上的標(biāo)題名稱。如果caption為空字符,則框架為封閉的矩形框,但框架內(nèi)的控件仍然可以被視為一組,而不是單獨(dú)的控件。 en
7、abled屬性。enabled屬性為false:標(biāo)題呈灰色,表示框架內(nèi)的所有對(duì)象均被屏蔽,不允許對(duì)框架內(nèi)的對(duì)象進(jìn)行操作。 visible屬性。visible屬性設(shè)為false,表示在程序執(zhí)行期間,框架及其內(nèi)部所有控件全部被隱藏起來(lái)。也就是說(shuō),對(duì)框架的操作也是對(duì)其內(nèi)部的控件的操作。其取值為true,表示框架及其內(nèi)部控件可見(jiàn)??蚣軆?nèi)的所有可見(jiàn)控件將隨框架一起移動(dòng)、顯示、消失和屏蔽??蚣芸梢皂憫?yīng)click和dblclick事件 。單選按鈕、復(fù)選框單擊事件示例例7.3 設(shè)計(jì)用三組框架顯示學(xué)生個(gè)人信息窗體。private sub command1_click() dim str as string st
8、r=text1.text & , if option1.value=true then str=str & option1.caption & , else str=str & option2.caption & , end if if option3.value=true then str=str & option3.caption & , else str=str & option4.caption & , end if str=str & vbcrlf & frame3.caption & : if check1.value=1 then str=str & check1.caption
9、 & if check2.value=1 then str=str & check2.caption & if check3.value=1 then str=str & check3.caption & if check4.value=1 then str=str & check4.caption & if check5.value=1 then str=str & check5.caption & if check6.value=1 then str=str & check6.caption & msgbox str, , 學(xué)生個(gè)人信息end sub7.1.2 列表框和組合框列表框和組合框
10、1列表框2組合框1列表框?qū)⒁幌盗械倪x項(xiàng)組合成一個(gè)列表,供用戶選擇。在列表框中放入若干個(gè)項(xiàng)的名字,用戶可以通過(guò)單擊某一項(xiàng)或多項(xiàng)來(lái)選擇自己所需要的項(xiàng)目。用戶可以選擇其中的選項(xiàng),但不能向列表清單中輸入項(xiàng)目。列表框的常用屬性列表框的常用屬性 (1) list屬性。一個(gè)字符串?dāng)?shù)組,用來(lái)保存列表框中的各個(gè)數(shù)據(jù)項(xiàng)內(nèi)容。 list數(shù)組的下標(biāo)從0開(kāi)始,即list(0)保存表中的第一個(gè)數(shù)據(jù)項(xiàng)的內(nèi)容。list(1)保存第二個(gè)數(shù)據(jù)項(xiàng)的內(nèi)容,以此類推,list(listcount-1)保存表中的最后一個(gè)數(shù)據(jù)項(xiàng)的內(nèi)容。設(shè)置list屬性:列表框名.list(索引號(hào))=項(xiàng)目?jī)?nèi)容訪問(wèn)list屬性:變量名=列表框名.list(索
11、引號(hào)) 或 print列表框名.list(索引號(hào)) listcount屬性。listcount屬性與list屬性一起用,表示列表框中有多少列表項(xiàng)。該屬性只能在運(yùn)行狀態(tài)訪問(wèn)。listcount-1是最后一個(gè)列表項(xiàng)的下標(biāo)。列表框的常用屬性列表框的常用屬性 (2) listindex屬性。判斷列表框中當(dāng)前被選中的項(xiàng)目的序號(hào)。序號(hào)也是自0開(kāi)始,第一個(gè)項(xiàng)目的序號(hào)為0,第二個(gè)項(xiàng)目的序號(hào)為1,以此類推。如果listindex屬性值為-1,則表明沒(méi)有項(xiàng)目被選中。該屬性只能在運(yùn)行狀態(tài)訪問(wèn)。 column屬性。當(dāng)列表框的選擇項(xiàng)數(shù)超過(guò)列表框所能容納的范圍時(shí),將設(shè)置列表框的垂直滾動(dòng)條或水平滾動(dòng)條。屬性值n是正整數(shù),可
12、以有兩種情況:0(默認(rèn)值)表示項(xiàng)目以一列顯示,項(xiàng)目多時(shí)自動(dòng)添加垂直滾動(dòng)條;n=1表示項(xiàng)目以n列顯示,但滾動(dòng)條出現(xiàn)時(shí)是水平的。該屬性只能在設(shè)計(jì)狀態(tài)設(shè)置。列表框的常用屬性列表框的常用屬性 (3) selected屬性。用于返回或設(shè)置列表框中列表項(xiàng)的選擇狀態(tài)。只能在運(yùn)行中設(shè)置或引用。selected屬性是一個(gè)邏輯數(shù)組,表示對(duì)應(yīng)的項(xiàng)在程序運(yùn)行期間是否被選中。例如,selected(0)的值為true表示第一項(xiàng)被選中,為false表示未被選中。 sorted屬性。決定列表框中項(xiàng)目在程序運(yùn)行期間是否按字母順序排列顯示。sorted屬性只能在設(shè)計(jì)狀態(tài)設(shè)置。如果sorted為true,則項(xiàng)目按字母順序排列顯示
13、;如果sorted為false,則項(xiàng)目按加入的先后順序排列顯示。 text屬性。默認(rèn)屬性,只能在運(yùn)行狀態(tài)中設(shè)置或引用。text屬性為字符串,保存了列表框中當(dāng)前被選中條目的文字。list(listindex)等于text。列表框的常用屬性列表框的常用屬性 (3) multiselect屬性。決定列表框是否支持多選。該屬性有以下三種狀態(tài)。0none(默認(rèn)值):禁止多項(xiàng)選擇,只能選擇一個(gè)條目。1simple:簡(jiǎn)單多項(xiàng)選擇,用鼠標(biāo)單擊或按空格鍵表示選定或取消選定一個(gè)選擇項(xiàng)。2extended:擴(kuò)展多項(xiàng)選擇,按住ctrl鍵同時(shí)用鼠標(biāo)單擊,表示選定或取消選定一個(gè)選擇項(xiàng);按住shift鍵同時(shí)單擊鼠標(biāo),或者按
14、住shift鍵并且移動(dòng)光標(biāo)鍵,就可以從前一個(gè)選定的項(xiàng)擴(kuò)展選擇到當(dāng)前選擇項(xiàng),即選定多個(gè)連續(xù)項(xiàng)。 selcount屬性。表明列表框中當(dāng)前被選中的條目的總數(shù)。如果沒(méi)有任何條目被選中,則該屬性值為0。該屬性在程序運(yùn)行時(shí)只讀,設(shè)計(jì)時(shí)不可用。 style屬性。決定列表框樣式,其取值0(默認(rèn)值)表示只顯示列表項(xiàng)文本;其取值1表示列表項(xiàng)文本前帶復(fù)選框。 列表框常用事件和方法列表框常用事件和方法 (1) additem方法。向列表框當(dāng)中添加新條目。其形式: list1.additem 字符串表達(dá)式 ,index 說(shuō)明:使用該方法在窗體的load事件過(guò)程中對(duì)列表框添加初始條目。字符串表達(dá)式是將要加入列表框的項(xiàng)目。
15、index決定新增項(xiàng)目在列表框中的位置。如果index省略,則新增項(xiàng)目將添加在最后。對(duì)于第一個(gè)項(xiàng)目,index為0。index不能比現(xiàn)有條目數(shù)大,否則會(huì)出現(xiàn)錯(cuò)誤。例如,在列表框的第二項(xiàng)位置插入一新列表項(xiàng),內(nèi)容為“c語(yǔ)言程序設(shè)計(jì)”,格式如下: list1.additem c語(yǔ)言程序設(shè)計(jì),1列表框常用事件和方法列表框常用事件和方法 (2) removeitem方法。從列表框中刪除一個(gè)項(xiàng)目。其形式: list1.removeitem index說(shuō)明:index是被刪除項(xiàng)目在列表框或組合框中的位置。對(duì)于第一個(gè)元素,index為0。例如,刪除列表框的第二項(xiàng)的格式如下: list1. removeitem
16、 1 clear方法。清除列表框當(dāng)中所有現(xiàn)有條目。其形式: list1.clear說(shuō)明:對(duì)象可以是列表框、組合框或剪貼板,即clear方法適用于列表框、組合框和剪貼板。 例7.4 設(shè)計(jì)窗體,實(shí)現(xiàn)學(xué)生選課private sub command3_click() for i=list2.listcount-1 to 0 step -1 if list2.selected(i)=true then list1.additem list2.list(i) list2.removeitem i end if next iend subprivate sub command1_click() for i=
17、list1.listcount-1 to 0 step -1 if list1.selected(i)=true then list2.additem list1.list(i) list1.removeitem i end if next iend subprivate sub command2_click() for i=0 to list1.listcount-1 list2.additem list1.list(i) next i list1.clearend sub private sub command4_click() for i=0 to list2.listcount-1 l
18、ist1.additem list2.list(i) next i list2.clearend sub 2組合框一種組合列表框和文本框的特性而成的控件,即組合框是一種獨(dú)立的控件,但它兼有列表框和文本框的功能。它可以像列表框一樣,讓用戶通過(guò)鼠標(biāo)選擇所需要的項(xiàng)目;也可以像文本框一樣,用鍵入的方式輸入項(xiàng)目。組合框的默認(rèn)名稱和標(biāo)題為combox(x為l,2,3,)。組合框的屬性、方法和事件與列表框基本相同。一般不針對(duì)組合框的事件進(jìn)行單獨(dú)編程。組合框的常用屬性 style屬性。取值為0,1,2,它決定了組合框三種不同的類型,分別為下拉式組合框、簡(jiǎn)單組合框和下拉式列表框。下拉式組合框(默認(rèn)值)“顯示在屏
19、幕上的僅是文本編輯框和一個(gè)下拉箭頭。執(zhí)行時(shí),用戶可用鍵盤直接在文本框區(qū)域鍵入文本內(nèi)容,也可用鼠標(biāo)單擊右邊的下拉箭頭,打開(kāi)列表框供用戶選擇,選中的內(nèi)容顯示在文本框上。 簡(jiǎn)單組合框:列出所有項(xiàng)目供用戶選擇,右邊沒(méi)有下拉箭頭,所列項(xiàng)目不能收起,與文本編輯框一起顯示在屏幕上。用戶可以在文本框中輸入列表框中沒(méi)有的選項(xiàng)。下拉式列表框:類似下拉式組合框,但不能輸入不在列表框里的內(nèi)容。 text屬性。用于獲取當(dāng)前選中的項(xiàng)目值。組合框在運(yùn)行時(shí)text屬性與最后文本框中顯示的文本相對(duì)應(yīng)。組合框的其他屬性與列表框和文本框的大部分屬性相同。例7.5 設(shè)計(jì)窗體,用文本框顯示學(xué)生所在學(xué)院、所學(xué)專業(yè)和班級(jí) private
20、sub command1_click() text1.text=text1.text & combo1.text & 學(xué)院 & combo2.text & _ 專業(yè) & combo3.text & 班學(xué)生end subprivate sub combo1_click() combo2.clear select case combo1.text case 計(jì)算機(jī)科學(xué)與技術(shù) combo2.additem 計(jì)算機(jī)科學(xué) combo2.additem 網(wǎng)絡(luò)工程 combo2.additem 軟件工程 combo2.additem 計(jì)算機(jī)組成 case 信息科學(xué)與技術(shù) combo2.additem 測(cè)控技
21、術(shù)與儀器 combo2.additem 自動(dòng)化與儀表 combo2.additem 電氣工程及其自動(dòng)化 case 化學(xué)工程與技術(shù) combo2.additem 化學(xué)工程 combo2.additem 安全工程 combo2.additem 制藥工程 case 環(huán)境生物工程與技術(shù) combo2.additem 生物工程 combo2.additem 環(huán)境工程 end selectend sub7.1.3 滾動(dòng)條滾動(dòng)條通常用來(lái)附在窗口上幫助觀察數(shù)據(jù)或確定位置,也可用來(lái)作為數(shù)據(jù)輸入的工具。vb 6.0為用戶提供兩種滾動(dòng)條,水平滾動(dòng)條和垂直滾動(dòng)條。水平滾動(dòng)條和垂直滾動(dòng)條的默認(rèn)名稱分別為hscrollx
22、和vscrollx(x為1,2,3,)。滾動(dòng)條的值均以整數(shù)表示,其取值范圍為-3276832767。滾動(dòng)條最小值和最大值分別在其的左、右端點(diǎn)或上、下端點(diǎn),其值分別賦給屬性min和max。滾動(dòng)條的常用屬性 max屬性,設(shè)置滾動(dòng)塊位于水平滾動(dòng)條最右側(cè)或者垂直滾動(dòng)條最低端時(shí)的值。默認(rèn)值是32767。 min屬性,設(shè)置滾動(dòng)塊位于水平滾動(dòng)條最左側(cè)或者垂直滾動(dòng)條最高端時(shí)的值,默認(rèn)值是0。 value屬性,用于設(shè)置或返回滾動(dòng)條當(dāng)前代表的值。對(duì)應(yīng)于滾動(dòng)塊在滾動(dòng)條中的位置,其值總在min和max之間。無(wú)論單擊箭頭、單擊空白區(qū)域還是拖動(dòng)滾動(dòng)滑塊,都會(huì)改變這個(gè)屬性值。largechange和smallchange屬
23、性。largechange指定用戶在滾動(dòng)框的空白區(qū)域內(nèi)單擊時(shí),滾動(dòng)條值的改變量。smallchange指定用戶在滾動(dòng)條兩端的滾動(dòng)按鈕時(shí),滾動(dòng)條值的改變量,通常smallchange=1。滾動(dòng)條常用事件和方法 change事件。釋放滾動(dòng)塊或單擊滾動(dòng)空白區(qū)域或單擊滾動(dòng)條按鈕或通過(guò)代碼改變value屬性值時(shí)發(fā)生該事件。 scroll事件。當(dāng)鼠標(biāo)在滾動(dòng)條內(nèi)拖動(dòng)滑塊時(shí)會(huì)觸發(fā)scroll事件。單擊滾動(dòng)條兩端的箭頭或滾動(dòng)條空白處均不能觸發(fā)此事件。scroll事件與change事件的區(qū)別在于:當(dāng)滾動(dòng)條滑塊滾動(dòng)時(shí),scroll事件一直發(fā)生,可用于跟蹤滾動(dòng)條的動(dòng)態(tài)變化;而change事件只是在滾動(dòng)結(jié)束之后才發(fā)生一
24、次,可用來(lái)得到滑塊所在的位置值。例7.6 設(shè)計(jì)窗體,用滾動(dòng)條改變文本框內(nèi)文本字體的大小 private sub form_load() dim size as integer size=72 label4.caption=size text1.fontsize=size vscroll1.value=sizeend subprivate sub vscroll1_change() text1.fontsize=vscroll1.value label4.caption=vscroll1.valueend sub 思考:如果將change事件改為scroll事件,程序運(yùn)行結(jié)果會(huì)怎么變化?7.1.
25、4 定時(shí)器定時(shí)器又稱計(jì)時(shí)器、時(shí)鐘控件,能夠有規(guī)律地以一定的時(shí)間間隔觸發(fā)計(jì)時(shí)器事件(timer事件)。一個(gè)窗體可以使用多個(gè)時(shí)鐘控件,它們的時(shí)間間隔相互獨(dú)立。在程序運(yùn)行階段,時(shí)鐘控件不可見(jiàn)。timer事件是定時(shí)器唯一的一個(gè)事件。timer事件是周期性的事情,間隔多長(zhǎng)時(shí)間產(chǎn)生一次,由控件的interval屬性指定。當(dāng)規(guī)定的時(shí)間間隔達(dá)到時(shí),就會(huì)觸發(fā)這個(gè)事件。定時(shí)器的常用屬性 interval屬性。決定兩個(gè)timer事件之間的時(shí)間間隔。時(shí)間間隔單位是毫秒,取值范圍在064767 之間(包括這兩個(gè)數(shù)值),單位為毫秒(0.001秒),表示計(jì)時(shí)間隔,最大的時(shí)間間隔約為65s。若將interval屬性設(shè)置為0或
26、負(fù)數(shù),則計(jì)時(shí)器將停止工作。 enabled屬性。決定定時(shí)器是否生效。無(wú)論何時(shí),只要時(shí)鐘控件的enabled屬性被設(shè)置為true,而且interval屬性值大于0,則計(jì)時(shí)器開(kāi)始工作(以interval屬性值為間隔,觸發(fā)timer事件)。通過(guò)把enabled屬性設(shè)置為false,可使時(shí)鐘控件無(wú)效,即計(jì)時(shí)器停止工作。 定時(shí)器示例private sub form_load() form1.autoredraw = true form1.print timer test form1.fontsize = 10 timer1.interval = 1000 最大時(shí)間間隔不超過(guò)65秒=65000毫秒end
27、subprivate sub timer1_timer() if form1.fontsize 100 then fontsize的最大值為2160磅 form1.fontsize = form1.fontsize * 2 else form1.fontsize = 10 end if cls print timer testend sub例7.7 設(shè)計(jì)窗體,實(shí)現(xiàn)鬧鐘的功能。 sub command2_click() hour=00 minute=00end subsub command3_click() endend subdim hour, minutesub command1_click
28、() hour=format(text1.text, 00) minute=format(text2.text, 00)end subsub timer1_timer() dim i as integer label3.caption=time$() if mid$(time$, 1, 5)=hour+:+minute then for i=1 to 100 beep next i end ifend sub7.1.5 圖片框和圖像框圖片框和圖像框1.圖片框圖片框2.圖像框圖像框1.圖片框圖片框圖片框用來(lái)顯示圖片和圖形。顯示以下幾種格式的圖形:位圖文件(*.bmp)、圖標(biāo)文件(*.ico)、圖
29、元文件(*.wmf)、增強(qiáng)元文件(.emf)、jpeg文件和gif文件。當(dāng)它作為其他控件的容器時(shí),用法與框架控件相同。 圖片框的常用屬性 picture屬性。設(shè)置控件是否要顯示圖片,可以在屬性窗口靜態(tài)設(shè)置,也可以在代碼中動(dòng)態(tài)設(shè)置。若沒(méi)有設(shè)置picture屬性值,則圖像框中不會(huì)顯示任何圖形。在代碼中設(shè)置的格式:.picture=loadpicture( )例如:picture1.picture=loadpicture(c:program files _ microsoft visualstudiocommongraphicsiconselements _ moon01.ico)說(shuō)明:調(diào)用不帶參數(shù)
30、的loadpicture( )函數(shù),將使圖像控件不顯示任何圖像。屬性窗口設(shè)置的picture 屬性,運(yùn)行時(shí)不依賴源文件。而在程序代碼中使用loadpicture調(diào)入的圖形文件,在運(yùn)行時(shí)要保證函數(shù)的參數(shù)應(yīng)該包括圖形文件的完整路徑和文件名。圖片框的常用屬性 autosize屬性。設(shè)置是否自動(dòng)改變圖片框大小以顯示圖片的全部?jī)?nèi)容。autosize取值為true時(shí),自動(dòng)改變圖片框大?。蝗≈禐閒alse(默認(rèn)值)時(shí),則不改變圖片框大小。 align屬性。設(shè)置圖片框在窗體中的顯示方式。取值為0、1、2、3、4。圖片框常用事件和方法 圖片框響應(yīng)的事件較多,有click、dblclick和change等。其中,
31、change事件在改變圖片框的picture屬性時(shí)發(fā)生。在窗體上picturebox控件與image控件的使用方法基本相同。相比之下,圖形框比圖像框占用的內(nèi)存多。使用picturebox控件的優(yōu)點(diǎn)在于它可以作為 “容器”。 print方法。在控件中輸出文本和數(shù)據(jù)。其格式:.print 輸出項(xiàng)列表 cls方法。清除在圖片框中輸出的內(nèi)容。cls只能清除窗體或圖片框中由print方法和繪圖方法(見(jiàn)第8章)顯示的文本信息和圖形,不能清除窗體或圖片框中的控件(如形狀控件等)。利用picture屬性加載的圖片,應(yīng)用loadpicture方法清除。其格式:.cls例7.8 設(shè)計(jì)窗體,實(shí)現(xiàn)月食效果。dim i
32、 as integerprivate sub timer1_timer() i=i+1 picture1.picture=loadpicture(app.path & moon0 & i & .ico) if i=8 then i=0end sub2.圖像框圖像框圖像框控件用來(lái)裝載圖形文件,使用方法與圖片框類似。圖像框功能單一,不能作為容器,也不支持繪圖方法和打印方法,但顯示圖形較快。 圖像框支持的事件不多,主要有click、dblclick、mousedown、mouseup和mousemove。圖像框支持的方法也不多,主要有move方法和refresh方法。 圖像框的常用屬性 pictur
33、e屬性。指定控件中要顯示的圖片。 stretch屬性。其值設(shè)置為false時(shí),圖像框可自動(dòng)改變大小以適應(yīng)其中的圖形(框適應(yīng)圖片);其值設(shè)置為true時(shí),加載到圖像框的圖形可自動(dòng)調(diào)整尺寸以適應(yīng)圖像框的大?。▓D片適應(yīng)框)。 borderstyle屬性。決定了圖像框是否有邊框。屬性值為0時(shí),無(wú)邊框(默認(rèn)值);為1時(shí),有邊框。其中,name屬性、left屬性、top屬性、width屬性、height屬性、visible屬性的用法與其他控件的相同。例7.9 設(shè)計(jì)窗體,隨機(jī)抽取三個(gè)數(shù)字作為中獎(jiǎng)號(hào)碼。 private sub command1_click() timer1.enabled=true end
34、subprivate sub command2_click() timer1.enabled=falseend subprivate sub timer1_timer() randomize num1=int(rnd*10) image1.picture=loadpicture(app.path & shuzi & num1 & .jpg) randomize num2=int(rnd*10) image2.picture=loadpicture(app.path & shuzi & num2 & .jpg) randomize num3=int(rnd*10) image3.picture=
35、loadpicture(app.path & shuzi & num3 & .jpg)end sub 7.2 菜單設(shè)計(jì)菜單設(shè)計(jì)7.2.1 下拉菜單下拉菜單7.2.2 彈出菜單彈出菜單下拉式菜單結(jié)構(gòu)1菜單編輯器打開(kāi)菜單編輯器方法:(1)在設(shè)計(jì)模式下,執(zhí)行“工具”菜單中的“菜單編輯器”命令。(2)使用快捷鍵ctrl+e。(3)單擊工具欄中的“菜單編輯器”按鈕。(4)在要建立菜單的窗體上右擊鼠標(biāo),在快捷菜單中,單擊“菜單編輯器”命令。 1菜單編輯器用于設(shè)置菜單項(xiàng)的各個(gè)屬性。用戶只要輸入各屬性的值,就可以創(chuàng)建一個(gè)菜單項(xiàng)。每創(chuàng)建一個(gè)菜單項(xiàng),編輯窗口下部的顯示區(qū)中會(huì)顯示出來(lái)。所有菜單項(xiàng)輸入完畢后,單擊“確
36、定”按鈕。 菜單控件屬性區(qū)菜單控件屬性區(qū) 編輯區(qū)編輯區(qū) 菜單項(xiàng)顯示區(qū)菜單項(xiàng)顯示區(qū) 用來(lái)對(duì)輸入的菜單項(xiàng)進(jìn)行簡(jiǎn)單的編輯 輸入的菜單項(xiàng)在這里顯示 checkedenabledvisible快捷鍵:按下時(shí)會(huì)立刻運(yùn)行一個(gè)菜單項(xiàng)??梢詾轭l繁使用的菜單項(xiàng)指定一個(gè)快捷鍵.(頂層菜單不能有快捷鍵。)訪問(wèn)鍵 :在“標(biāo)題標(biāo)題”文本框中,為菜單鍵入希望在菜單欄上顯示的文本。如果希望某一字符成為該菜單項(xiàng)的訪問(wèn)鍵,也可以在該字符前面加上一個(gè) (&) 字符。在菜單中,這一字符會(huì)自動(dòng)加上一條下劃線。訪問(wèn)鍵允許按下 alt 鍵和訪問(wèn)鍵來(lái)打開(kāi)一個(gè)菜單。一旦菜單打開(kāi),通過(guò)按下訪問(wèn)鍵可選取控件。例如,在powerpoint中,按下
37、alt + e 鍵可打開(kāi)“編輯”菜單,再按 f 鍵可選取“查找”菜單項(xiàng)。按鈕也可用此方法設(shè)訪問(wèn)鍵,單擊alt+訪問(wèn)鍵,相當(dāng)于單擊按鈕。注意n不能為頂層菜單設(shè)置復(fù)選標(biāo)志n不能為頂層菜單設(shè)置快捷鍵n頂層菜單不可用時(shí),其子菜單不再顯示n菜單標(biāo)題為“-”(減號(hào)),將顯示為分割線n在程序中改變菜單visible的值可動(dòng)態(tài)控制菜單的顯示與否。例7.10 設(shè)計(jì)一個(gè)窗體,設(shè)計(jì)一個(gè)下拉菜單,實(shí)現(xiàn)字體、字號(hào)和顏色的設(shè)置。 private sub mnugreen_click() text1.forecolor=vbgreen mnured.checked=false mnublue.checked=false m
38、nugreen.checked=trueend sub private sub mnuhelp_click() msgbox 本系統(tǒng)是測(cè)試版end subprivate sub mnulishu_click() text1.fontname=隸書 mnulishu.checked=true mnukaiti.checked=false mnuheiti.checked=falseend subprivate sub mnunew_click() text1.visible=trueend sub private sub mnured_click() text1.forecolor=vbred
39、mnured.checked=true mnublue.checked=false mnugreen.checked=falseend subprivate sub mnusave_click() msgbox 你單擊了保存菜單項(xiàng)end sub 2菜單控件數(shù)組在同一菜單上共享相同名稱和事件過(guò)程的菜單工程的集合。菜單控件數(shù)組的作用主要有兩個(gè):一是在運(yùn)行時(shí)用于動(dòng)態(tài)地增刪菜單項(xiàng),但必須是菜單控件數(shù)組中的成員;假設(shè)菜單控件數(shù)組名為mymenuload mymenu(n)unload mymenu(n)二是簡(jiǎn)化編程,用一段代碼處理多個(gè)菜單項(xiàng)。每個(gè)菜單控件數(shù)組元素都有唯一的索引值來(lái)標(biāo)識(shí),該值在菜單編輯器上
40、“index屬性框”中指定。 增加新菜單項(xiàng)的方法 在菜單編輯器中設(shè)計(jì)菜單時(shí),建立一個(gè)菜單控件數(shù)組,設(shè)置名稱、標(biāo)題、index屬性值為0。例如,建立一個(gè)名稱為mnufilelist,index為0的控件數(shù)組元素,設(shè)置其visible屬性為false。 設(shè)置一個(gè)變量num來(lái)保存當(dāng)前控件數(shù)組元素的位置。 設(shè)置變量title來(lái)存放添加菜單項(xiàng)的標(biāo)題。 在需要添加菜單項(xiàng)時(shí),執(zhí)行下面的語(yǔ)句。num=num+1下標(biāo)加1, 指向下一個(gè)數(shù)組元素load mnufilelist(num)建立新的控件數(shù)組元素mnufilelist(num).caption=title設(shè)置新數(shù)組元素的標(biāo)題mnufilelist(num
41、).visible=true使新數(shù)組元素可見(jiàn)菜單控件數(shù)組的各元素在菜單控件列表框中必須是連續(xù)的,而且必須是在同一縮進(jìn)級(jí)上。刪除菜單項(xiàng)的方法 選擇要?jiǎng)h除的菜單項(xiàng),并將其下標(biāo)存放在變量n中。 從被刪除的菜單項(xiàng)開(kāi)始,用后面的菜單項(xiàng)覆蓋前面的菜單項(xiàng)。for i=n to num mnufilelist(i).caption= mnufilelist(i+1).captionnext i 然后用unload刪除最后一個(gè)菜單項(xiàng),并將控件數(shù)組的個(gè)數(shù)減1。unload mnufilelist(num)num=num-1例7.11 在上題基礎(chǔ)上設(shè)計(jì)增加 “mnufilelist”, “mnuzi”控件數(shù)組。pr
42、ivate sub mnunew_click() dim i as integer text1.visible=true if num=0 then mnuzi(0).visible=true num=num+1 load mnuzi(num) mnuzi(num).caption=斜體end subprivate sub mnuopen_click() dim i as integer mnuspace1.visible=true mnuspace2.visible=true num=num+1 i=num mod 5 if i=0 then i=5 load mnufilelist(num
43、) mnufilelist(i).caption=打開(kāi)文件 & num mnufilelist(i).visible=trueend sub private sub mnuzi_click(index as integer) select case index case 0 if mnuzi(index).checked=false then text1.fontbold=true mnuzi(index).checked=true else text1.fontbold=false mnuzi(index).checked=false end if case 1 if mnuzi(index
44、).checked=false then text1.fontitalic=true mnuzi(index).checked=true else text1.fontitalic=false mnuzi(index).checked=false end if end selectend sub 7.2.2 彈出菜單彈出菜單首先用菜單編輯器建立菜單。必須把菜單名(即主菜單項(xiàng))的“可見(jiàn)”屬性設(shè)置為false(子菜單項(xiàng)不要設(shè)置為false)。然后用popupmenu方法彈出顯示。popupmenu方法用來(lái)顯示彈出菜單,其格式:對(duì)象. popupmenu ,flag,x,y其中,菜單項(xiàng)是必需的,其他
45、參數(shù)是可選的;x,y參數(shù)指定彈出快捷菜單顯示的位置(x,y坐標(biāo))。默認(rèn)使用鼠標(biāo)的坐標(biāo);標(biāo)志參數(shù)用于進(jìn)一步定義彈出菜單的位置和性能。 在例7.10中,將“字體”子菜單改為彈出菜單private sub text1_mousedown(button as integer, shift as integer,x as single, y as single) if button=2 then text1.enabled=false text1.enabled=true popupmenu mnufont end ifend sub 7.3 通用對(duì)話框通用對(duì)話框通用對(duì)話框:也稱公共對(duì)話框,是vb系統(tǒng)基
46、于windows的標(biāo)準(zhǔn)對(duì)話框界面,創(chuàng)建的六種標(biāo)準(zhǔn)對(duì)話框(打開(kāi)、另存為、顏色、字體、打印機(jī)和幫助)。通用對(duì)話框(commondialog 控件)不是標(biāo)準(zhǔn)的控件,在使用通用對(duì)話框前,需要在“工程”菜單中選定“部件”對(duì)話框的“控件”選項(xiàng)卡,選中microsoft common dialog control 6.0選項(xiàng),單擊“確定”按鈕,則通用對(duì)話框添加到工具箱中。 通用對(duì)話框的屬性 action功能屬性。用來(lái)決定調(diào)用何種類型的對(duì)話框。 dialogtitle(對(duì)話框標(biāo)題)屬性。通用對(duì)話框標(biāo)題屬性。只對(duì)“打開(kāi)”和“另存為”對(duì)話框有效。 cancelerror屬性。該屬性決定在用戶單擊“取消”按鈕時(shí)是否
47、產(chǎn)生錯(cuò)誤信息。取其值為true時(shí),表示單擊“取消”按鈕,出現(xiàn)錯(cuò)誤警告;取其值為false(缺省)時(shí),表示單擊“取消”按鈕,不會(huì)出現(xiàn)錯(cuò)誤警告。 name屬性。設(shè)置通用對(duì)話框的名稱。 left和top屬性。left和top屬性表示通用對(duì)話框的位置。通用對(duì)話框的方法 showopen方法:顯示“打開(kāi)”對(duì)話框。 showsave方法:顯示“另存為”對(duì)話框。 showcolor方法:顯示“顏色”對(duì)話框。 showfont方法:顯示“字體”對(duì)話框。 showprinter方法:顯示“打印機(jī)”對(duì)話框。 showhelp方法:顯示“幫助”對(duì)話框。commondialog1.action = 1等價(jià)于commo
48、ndialog1.showopencommondialog1.action = 2等價(jià)于commondialog1.showsave以此類推復(fù)習(xí)n學(xué)習(xí)過(guò)的容器控件有?n圖片框與圖象框的區(qū)別?autosize, stretchn通用對(duì)話框可以創(chuàng)建哪幾種對(duì)話框?如何創(chuàng)建?1“打開(kāi)”對(duì)話框action=1 private sub command1_click() commondialog1.dialogtitle=打開(kāi)文件 commondialog1.filter= all files(*.*)|*.*|frm文件|*.frm|vbp文件|*.vbp| commondialog1.filterind
49、ex=2 commondialog1.initdir= d: commondialog1.flags=1 commondialog1.action=1end sub p1852“另存為”對(duì)話框 action=2 private sub command2_click()commondialog1.filename=default.txt 設(shè)置默認(rèn)文件名commondialog1.defaultext=txt 設(shè)置默認(rèn)擴(kuò)展名commondialog1.action=2 打開(kāi)另存為對(duì)話框open commondialog1.filename for output as #1 打開(kāi)文件供寫入數(shù)據(jù)pri
50、nt #1, text1.textclose #1 關(guān)閉文件end sub 3“顏色”對(duì)話框 private sub command3_click() commondialog1.action=3 打開(kāi)顏色對(duì)話框 text1.forecolor=commondialog1.color 設(shè)置文件框前景顏色end subaction=34“字體”對(duì)話框 private sub command4_click()commondialog1.flags=cdlcfboth or cdlcfeffectscommondialog1.action=4 打開(kāi)字體對(duì)話框text1.fontname=common
51、dialog1. fontname text1.fontsize=commondialog1.fontsize text1.fontbold=commondialog1.fontbold text1.fontitalic=commondialog1.fontitalictext1.fontstrikethru=commondialog1.fontstrikethrutext1.fontunderline=commondialog1.fontunderline text1.forecolor=commondialog1.colorend sub action=4可以為1、2、3或1、2、3與25
52、6的和5“打印”對(duì)話框private sub command5_click()commondialog1.showprinter for i=1 to commondialog1.copies printer.print label1.caption next i printer.enddoc end sub action=56“幫助”對(duì)話框private sub command6_click()commondialog1.helpcommand=cdlhelpcontentscommondialog1.helpfile=c:windowssystem32winabc.hlpcommondia
53、log1.showhelpend sub action=6例7.12 設(shè)計(jì)窗體,設(shè)計(jì)下拉菜單實(shí)現(xiàn)通用對(duì)話框的設(shè)置。 private sub mnucolor_click() commondialog1.showcolor text1.forecolor=commondialog1.colorend subprivate sub mnufont_click() commondialog1.flags=3 or 256 commondialog1.filename=宋體 commondialog1.showfonttext1.fontname=commondialog1.fontnametext1
54、.fontsize=commondialog1.fontsizetext1.fontbold=commondialog1.fontboldtext1.fontitalic=commondialog1.fontitalicend subprivate sub mnuhelp_click()commondialog1.helpcommand=cdlhelpcontents commondialog1.helpfile=app.path & winabc.hlp commondialog1.showhelpend subprivate sub mnuopen_click() text1.visibl
55、e=true commondialog1.showopen text1.text=commondialog1.filenameend subprivate sub mnuprint_click() dim i as integer commondialog1.showprinter for i=1 to commondialog1.copies printer.print text1.text next i printer.enddocend subprivate sub mnusave_click() commondialog1.showsave msgbox 你輸入的文件名是 & comm
56、ondialog1.filename & (文件具體操作 看第9章)end sub7.4 工具欄工具欄使用使用toolbar 控件創(chuàng)建工具欄控件創(chuàng)建工具欄 : 在主菜單中選擇“工程”,在“工程”下拉菜單中選擇“部件”,即可打開(kāi)“部件”對(duì)話框。 選中microsoft windows common controls 6.0,用鼠標(biāo)單擊“確定”按鈕,即可在工具箱中增加一組控件。其中,包括用來(lái)創(chuàng)建工具欄的控件toolbar控件與imagelist控件。 用鼠標(biāo)雙擊toolbar控件,它將自動(dòng)加入窗體并出現(xiàn)在窗體的頂部(也可單擊控件后在窗體中畫出控件)。例例7.13 在例題在例題7.12基礎(chǔ),添加一個(gè)
57、工具欄?;A(chǔ),添加一個(gè)工具欄。private sub toolbar1_buttonclick(byval button as mscomctllib.button) select case button.index case 1 mnunew_click case 2 mnuopen_click case 3 mnusave_click case 4 mnufont_click case 5 mnucolor_click case 6 mnuhelp_click case 7 mnuprint_click end selectend sub7.5 綜合應(yīng)用綜合應(yīng)用例7.14 編一個(gè)計(jì)算月支付貸款的程序?,F(xiàn)要求根據(jù)房產(chǎn)開(kāi)發(fā)商提供的信息,買房者選擇房型、面積、單價(jià)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)下冊(cè)數(shù)學(xué)第一單元課件
- 廣東省韶關(guān)市曲江區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期期末道德與法治模擬試題
- 建筑公司轉(zhuǎn)讓合同模板
- 餐飲檔口合同模板
- 勞務(wù)分包塔吊合同模板
- 鴨子購(gòu)銷合同模板
- 足療協(xié)議合同模板
- 詐騙工程合同模板
- 2024年黨的知識(shí)競(jìng)賽試題庫(kù)及答案
- 轉(zhuǎn)讓大巴合同模板
- 【道法】認(rèn)識(shí)生命 課件-2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 2023-2024學(xué)年北京市西城區(qū)三帆中學(xué)八年級(jí)(上)期中數(shù)學(xué)試卷【含解析】
- 10kV架空線路專項(xiàng)施工方案
- (正式版)JBT 9229-2024 剪叉式升降工作平臺(tái)
- 教育互聯(lián)網(wǎng)在教學(xué)設(shè)計(jì)中的應(yīng)用
- 江蘇開(kāi)放大學(xué) 社會(huì)主義的發(fā)展及其規(guī)律 正確把握科學(xué)社會(huì)主義基本原則
- 2023版押品考試題庫(kù)必考點(diǎn)含答案
- 電動(dòng)葫蘆的設(shè)計(jì)計(jì)算電動(dòng)起重機(jī)械畢業(yè)設(shè)計(jì)論文
- (完整版)學(xué)校安辦主任安全工作職責(zé)
- 傳感器技術(shù)第八章
評(píng)論
0/150
提交評(píng)論