《Visual Basic程序設(shè)計(jì)教程》全套教學(xué)課件_第1頁
《Visual Basic程序設(shè)計(jì)教程》全套教學(xué)課件_第2頁
《Visual Basic程序設(shè)計(jì)教程》全套教學(xué)課件_第3頁
《Visual Basic程序設(shè)計(jì)教程》全套教學(xué)課件_第4頁
《Visual Basic程序設(shè)計(jì)教程》全套教學(xué)課件_第5頁
已閱讀5頁,還剩817頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

VisualBasic

程序設(shè)計(jì)教程

全套可編輯PPT課件第1章VisualBasic入門.pptx第2章窗體及其操作.pptx第3章VB程序設(shè)計(jì)語言基礎(chǔ).pptx第4章數(shù)據(jù)輸入與輸出.pptx第5章程序控制結(jié)構(gòu).pptx第6章VisualBasic常用標(biāo)準(zhǔn)控件.pptx第7章使用數(shù)組.pptx第8章過程.pptx第9章菜單、工具欄與對話框設(shè)計(jì).pptx第10章多重窗體與MDI窗體程序設(shè)計(jì).pptx第11章文件操作.pptx第12章VB數(shù)據(jù)庫編程技術(shù).pptx第一章VisualBasic入門CHAPTER了解VisualBasic熟悉VB6.0集成開發(fā)環(huán)境與VB工程VB應(yīng)用程序開發(fā)步驟與開發(fā)基礎(chǔ)163VisualBasic是

Microsoft公司

推出的,在Windows操作系統(tǒng)上運(yùn)行的可視化的、面向?qū)ο蟮?、采用事件?qū)動方式的高級程序設(shè)計(jì)語言。同時(shí),VisualBasic也是一套完全獨(dú)立的集成開發(fā)系統(tǒng),它為開發(fā)Windows應(yīng)用程序提供了迅速、便捷的方法。1.1了解VisualVisualBasic是Windows環(huán)境下最具吸引力的程序設(shè)計(jì)語言之一,它是從Basic語言發(fā)展而來的,繼承了Basic語言易學(xué)易用的特點(diǎn)。1.1.1VisualBasic的特點(diǎn)實(shí)例1-1——VB的安裝與啟動1.1.2VisualBasic版本簡介SectionVisualBasic1.1了解VisualBasicVisualBasic既是指VisualBasic編程語言,也指VisualBasic(以下簡稱VB)集成開發(fā)環(huán)境。VB集成開發(fā)環(huán)境功能非常強(qiáng)大,用戶可以借助它來構(gòu)建程序界面,編寫程序代碼,以及調(diào)試程序等,如右圖所示。1.1.1VisualBasic的特點(diǎn)VB集成開發(fā)環(huán)境1)可視化編程“Visual”一詞的意思是“視覺的,可視的”,因此,VB語言是一種可視化的編程語言。使用VB開發(fā)圖形用戶界面時(shí),不再需要編寫大量代碼去描述界面元素的外觀和位置,只要按照所見即所得的方式把預(yù)先建立的對象拖放到屏幕上并為其設(shè)置合適的屬性值即可。如右圖所示。VB編程語言是一種非常規(guī)范的面向?qū)ο蟮木幊陶Z言,用它編寫的程序非常規(guī)范、清晰易讀。因此,VB目前被很多學(xué)校作為非計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí)編程的教學(xué)語言??傮w而言,VB主要有如下一些特點(diǎn):以可視化方式構(gòu)建程序界面2)面向?qū)ο缶幊蘓B采用了面向?qū)ο螅∣bjectOrientedProgramming,簡稱OOP)的程序設(shè)計(jì)思想,它的基本思路是把復(fù)雜的程序設(shè)計(jì)問題分解為一個(gè)個(gè)能夠?qū)崿F(xiàn)獨(dú)立功能的相對簡單的對象。例如,可以把窗口分解為多個(gè)按鈕控件、菜單控件、工具條控件等,編寫程序時(shí),我們只要針對窗口和各控件進(jìn)行編程即可。在Windows環(huán)境下,程序的運(yùn)行是以事件驅(qū)動的,即用戶必須通過鼠標(biāo)、鍵盤操作來“指示”電腦下面要干什么,這些“指示”就是所謂的“事件”。在VB中,當(dāng)用戶在搭建好用戶界面后,主要的編程任務(wù)就是編寫事件處理程序,即當(dāng)某一事件發(fā)生時(shí)(如移動鼠標(biāo)、按下按鍵、單擊某個(gè)按鈕等),系統(tǒng)將調(diào)用該事件處理程序來處理該事件。3)事件驅(qū)動機(jī)制VB的特點(diǎn)4)強(qiáng)大的數(shù)據(jù)庫處理功能VB提供了強(qiáng)大的數(shù)據(jù)庫處理功能,利用其數(shù)據(jù)控件和數(shù)據(jù)訪問對象幾乎可以訪問和處理任何數(shù)據(jù)庫,如Access、SQLServer等。5)強(qiáng)大的交互式集成開發(fā)環(huán)境VB集成開發(fā)環(huán)境的功能非常強(qiáng)大,例如,用戶可借助它來設(shè)計(jì)程序界面,在輸入程序代碼時(shí),系統(tǒng)會自動給出各種提示并能及時(shí)捕捉拼寫錯(cuò)誤;在調(diào)試程序時(shí),系統(tǒng)能準(zhǔn)確定位錯(cuò)誤位置,顯示出錯(cuò)信息等。此外,在該集成開發(fā)環(huán)境下,用戶還可以把應(yīng)用程序編譯成可在Windows中直接運(yùn)行的可執(zhí)行文件,還可為應(yīng)用程序生成安裝程序包,這為程序開發(fā)者提供了極大的方便。1.1了解VisualBasic1.1.1VisualBasic的特點(diǎn)VB的特點(diǎn)1991年,Microsoft公司開發(fā)出了基于GUI(GraphicsUserInterface,圖形用戶界面)的VisualBasic1.0版;之后,隨著Windows操作平臺的不斷完善,微軟公司相繼推出了VisualBasic的后續(xù)版本;到1998年,VisualBasic已經(jīng)發(fā)展到了6.0版。此后,由于C#、Java、PHP等逐漸成為主流編程語言,Microsoft公司放棄了對VisualBasic的后續(xù)開發(fā)。Microsoft公司針對VisualBasic6.0提供了三種版本,它們分別是學(xué)習(xí)版、專業(yè)版和企業(yè)版,以滿足不同的需求。由于企業(yè)版功能最為強(qiáng)大也最為流行,因此,本書將以該版本為基礎(chǔ)進(jìn)行講解。實(shí)例1-1VB的安裝與啟動實(shí)例1-1VB的安裝與啟動1.安裝VBone用戶既可以直接從光盤安裝VB6.0,也可以把光盤文件復(fù)制到硬盤之后再安裝。VB的安裝過程比較簡單,其簡要安裝步驟如下:步驟1將VB6.0安裝光盤插入CD-ROM驅(qū)動器中。如果光盤驅(qū)動器的“自動運(yùn)行”功能是打開的(默認(rèn)都是打開的),則插入光盤后,安裝程序會自動執(zhí)行;否則,就需要運(yùn)行光盤根目錄下的“Setup.exe”程序。若是復(fù)制到硬盤上再安裝,則必須運(yùn)行安裝目錄下的“Setup.exe”程序。步驟2選擇安裝類型。安裝程序在用戶輸入合法的產(chǎn)品序列號后,提供了三種安裝選擇:典型安裝、自定義安裝和最小化安裝。初學(xué)者一般可選擇典型安裝,有經(jīng)驗(yàn)的用戶可根據(jù)自己的需要進(jìn)行自定義安裝。1.安裝VBone步驟3設(shè)置安裝路徑。VB系統(tǒng)缺省的安裝路徑為C:\ProgramFiles\MicrosoftVisualStudio\VB98,用戶也可根據(jù)需要指定其他安裝文件夾。步驟4復(fù)制文件。完成以上設(shè)置后,安裝程序會把需要的文件從光盤解壓縮后復(fù)制到硬盤上指定的文件夾中,并在“開始”菜單中創(chuàng)建“MicrosoftVisualBasic6.0中文版”程序組。步驟5如果需要使用VB6.0的幫助文檔,還需要另外安裝MSDN。系統(tǒng)在安裝完VB6.0后會提示用戶安裝該文檔。步驟6重新啟動系統(tǒng)后,就可以運(yùn)行VisualBasic6.0程序開發(fā)軟件了。2.啟動VBtwoVB安裝結(jié)束并重新啟動系統(tǒng)后,就可以像運(yùn)行Windows中其他應(yīng)用程序那樣啟動VB6.0集成開發(fā)環(huán)境了。

要啟動VB,可首先單擊任務(wù)欄上的“開始”按鈕,選擇“所有程序”,然后在“MicrosoftVisualBasic6.0中文版”子菜單中單擊“VisualBasic6.0中文版”選項(xiàng)。

此外,用戶也可通過在“我的電腦”或“Windows資源管理器”窗口中雙擊現(xiàn)有的VB工程文件來啟動VB6.0集成開發(fā)環(huán)境。1.2熟悉VB6.0集成開發(fā)環(huán)境與VB工程1.2.1VB集成開發(fā)環(huán)境1.2.2關(guān)于VB工程Section啟動VB6.0后,系統(tǒng)會首先打開“新建工程”對話框,如下圖所示。

該對話框有三個(gè)選項(xiàng)卡,其功能有:“新建”選項(xiàng)卡用于建立新的工程。該選項(xiàng)卡下列出了VB6.0可以建立的應(yīng)用程序類型。不過,對初學(xué)者而言,一般選擇默認(rèn)的“標(biāo)準(zhǔn)EXE”選項(xiàng)即可?!艾F(xiàn)存”選項(xiàng)卡用來選擇和打開現(xiàn)有工程?!艾F(xiàn)存”選項(xiàng)卡列出了最近使用過的工程。“新建工程”對話框在“新建”選項(xiàng)卡中選擇“標(biāo)準(zhǔn)EXE”選項(xiàng),然后單擊“打開”按鈕,即可進(jìn)入VB6.0應(yīng)用程序集成開發(fā)環(huán)境了,如下圖所示。VB6.0集成開發(fā)環(huán)境工程資源

管理器標(biāo)題欄工具欄工具箱窗體

設(shè)計(jì)器菜單欄屬性

窗口窗體布局

窗口總體而言,VB6.0集成開發(fā)環(huán)境和大多數(shù)Windows軟件使用界面都差不多,因此,下面僅簡要介紹一下其主要界面組成元素的用途和特點(diǎn)。1.標(biāo)題欄與菜單欄one標(biāo)題欄中顯示了當(dāng)前VB工程的名稱,菜單欄中各菜單項(xiàng)及其子菜單提供了一組開發(fā)、調(diào)試VB應(yīng)用程序和設(shè)置VB集成開發(fā)環(huán)境的命令。2.工具欄two工具欄位于菜單欄的下方,它提供了對常用命令的快速訪問。單擊工具欄上的按鈕,則執(zhí)行該按鈕所代表的操作。啟動VB后,一般只顯示“標(biāo)準(zhǔn)”工具欄。除此之外,VB還提供了“編輯”“窗體編輯器”和“調(diào)試”工具欄。用戶可以通過選擇“視圖”>“工具欄”菜單中的工具欄名稱來打開或關(guān)閉各工具欄。3.工具箱three與工具欄不同,工具箱中提供的是一組應(yīng)用程序控件。在設(shè)計(jì)窗體時(shí),用戶可以首先在工具箱中單擊選中某個(gè)控件,然后在窗體中單擊并拖動,即可在指定位置創(chuàng)建一個(gè)大小適當(dāng)?shù)目丶ο?,如下圖所示。在窗體中創(chuàng)建對象提示雙擊工具箱中的控件按鈕,可在窗體的中心位置創(chuàng)建一個(gè)缺省尺寸的控件對象。

若當(dāng)前集成開發(fā)環(huán)境中沒有顯示工具箱,可選擇“視圖”菜單中的“工具箱”命令或單擊“標(biāo)準(zhǔn)”工具欄中的“工具箱”按鈕來顯示它。4.窗體設(shè)計(jì)器four窗體是應(yīng)用程序最終面向用戶的窗口,使用窗體設(shè)計(jì)器可以通過可視化的方法直觀地設(shè)計(jì)窗體及其包含的可視控件的初識外觀、顯示位置和其他屬性等。當(dāng)新建一個(gè)工程文件時(shí),VB會自動建立一個(gè)空的新窗體,并命名為“Form1”。在VB中,每個(gè)窗體都有唯一的名稱,以后再新建窗體時(shí),其默名稱分別為Form2、Form3等。不過,用戶可以利用下面將要介紹的屬性窗口修改窗體名稱和提示信息,如下圖所示。利用屬性窗口修改窗體名稱和窗體標(biāo)題內(nèi)容此外,窗體設(shè)計(jì)器中有很多網(wǎng)格,主要是為了方便用戶設(shè)置窗體中各種控件對象的位置和尺寸,在運(yùn)行應(yīng)用程序時(shí)網(wǎng)格將不可見。5.工程資源管理器Five

工程是指用戶開發(fā)應(yīng)用程序時(shí)所創(chuàng)建的各種窗體、模塊應(yīng)用程序等文件的集合。工程信息保存在工程文件中,工程文件的擴(kuò)展名是.vbp。保存在磁盤中的窗體文件名窗體名,在應(yīng)用程序中使用啟動VB時(shí),用戶創(chuàng)建的工程默認(rèn)名稱為“工程1”。要想修改工程名稱,可首先在工程資源管理器中單擊工程名,然后在屬性窗口中修改工程名稱,如右圖所示。工程資源管理器用來管理當(dāng)前工程中包含的各類文件,其顯示文件的方式與Windows資源管理器顯示文件夾的方式相仿。在VB中能建立多種類型的工程,其中最常用的是標(biāo)準(zhǔn)EXE類型的工程。提示若當(dāng)前集成開發(fā)環(huán)境中沒有顯示工程資源管理器,可選擇“視圖”菜單中的“工程資源管理器”命令,單擊工具欄中的“工程資源管理器”按鈕

,或者按【Ctrl+R】組合鍵來顯示它。修改工程名6.屬性窗口six屬性窗口的組成如右圖所示,它主要用來查看或設(shè)置工程、窗體和控件的名稱及各種屬性。其中,屬性是指對象的特征,如控件標(biāo)題的內(nèi)容、字體、字號和顏色,控件的位置和尺寸等。對象下拉列表框?qū)傩粤斜砜驅(qū)傩院x說明屬性窗口利用屬性窗口上方的對象下拉列表可選擇要設(shè)置或查看其屬性的對象。此外,屬性窗口中還可以分別以“按字母序”或“按分類序”兩種方式顯示對象屬性。若當(dāng)前集成開發(fā)環(huán)境中沒有顯示屬性窗口,可選擇“視圖”菜單中的“屬性窗口”命令,單擊“標(biāo)準(zhǔn)”工具欄中的“屬性窗口”按鈕,或者按【F4】鍵來顯示它。1.工程及其文件one如前所述,VB中的工程用來管理應(yīng)用程序中所包含的各類文件,且工程信息保存在工程文件中(工程文件的擴(kuò)展名為.vbp)。因此,在VB中,要開發(fā)一個(gè)應(yīng)用程序,就要?jiǎng)?chuàng)建一個(gè)工程。1)了解工程及其文件組成我們新建了一個(gè)“標(biāo)準(zhǔn)EXE”工程,并且重新命名了窗體和工程,此時(shí)單擊“標(biāo)準(zhǔn)”工具欄中的“保存工程”按鈕,系統(tǒng)將打開“文件另存為”對話框,提示用戶保存窗體文件。打開“保存在”下拉列表,選擇保存窗體文件的文件夾;在“文件名”編輯框中輸入要保存的窗體文件名(參考右圖),然后單擊“保存”按鈕,即可保存窗體文件。保存窗體文件1.工程及其文件one1)了解工程及其文件組成接下來系統(tǒng)會自動打開“工程另存為”對話框,如右圖所示。默認(rèn)情況下,系統(tǒng)會自動將工程文件與窗體文件保存在同一個(gè)文件夾中。如果需要的話,用戶還可以重新設(shè)置工程文件名。設(shè)置結(jié)束后,單擊“保存”按鈕,保存工程文件。保存工程文件1.工程及其文件one1)了解工程及其文件組成下圖顯示了指定文件夾中保存的窗體文件和工程文件。以后要打開該工程,可以直接在“我的電腦”窗口找到該工程文件并雙擊它即可。工程文件及窗體文件1.工程及其文件one2)工程中主要的文件類型VB工程中主要可包括如下3類文件(參見下圖,詳見下一頁):保存在磁盤中的工程文件名工程名,在應(yīng)用程序中使用VB工程中的文件類型1.工程及其文件one2)工程中主要的文件類型窗體文件用來保存窗體設(shè)計(jì)信息及窗體中包含的程序代碼。如果應(yīng)用程序中包含了多個(gè)窗體,則工程中將包含多個(gè)窗體文件。窗體文件的擴(kuò)展名為.frm。模塊文件用來保存專門編寫的程序模塊。同樣,工程中也可包含多個(gè)模塊文件。模塊文件的擴(kuò)展名為.bas。設(shè)計(jì)器文件如果需要開發(fā)數(shù)據(jù)庫應(yīng)用程序,則需要向工程中增加設(shè)計(jì)器文件,這類文件主要用來保存數(shù)據(jù)庫信息,以便VB應(yīng)用程序操作數(shù)據(jù)庫。設(shè)計(jì)器文件的擴(kuò)展名為.Dsr。1.工程及其文件one3)向工程中添加文件要向工程中添加窗體、模塊或設(shè)計(jì)器等,可以分別選擇“工程”菜單中的“添加窗體”“添加模塊”或“添加DataEnvironment”等命令。也可在工程資源管理器中右擊,打開其快捷菜單,從中選擇“添加”菜單中的各菜單項(xiàng),如右圖所示。工程資源管理器快捷菜單如果執(zhí)行“添加窗體”命令,系統(tǒng)將打開如下圖所示的“添加窗體”對話框。默認(rèn)情況下,窗體類型列表區(qū)中的“窗體”類型被選中,如果此時(shí)直接單擊“打開”按鈕,則系統(tǒng)將向工程中添加一個(gè)新的空白窗體。3)向工程中添加文件“添加窗體”對話框1.工程及其文件one如果在窗體類型列表區(qū)中選擇““關(guān)于”對話框”“對話框”等選項(xiàng),則可向工程中添加相應(yīng)類型的窗體。如果選擇“VB數(shù)據(jù)窗體向?qū)А?,則系統(tǒng)會自動打開“數(shù)據(jù)窗體向?qū)А?,用戶可根?jù)向?qū)崾緞?chuàng)建一個(gè)用來管理數(shù)據(jù)庫的窗體。如果希望將現(xiàn)有窗體添加到工程中,可打開“添加窗體”對話框的“現(xiàn)存”選項(xiàng)卡,然后選擇希望添加到工程中的窗體。向工程中添加模塊、設(shè)計(jì)器文件的方法與添加窗體類型,此處不再贅述。3)向工程中添加文件1.工程及其文件one1.工程及其文件one要想將選定的窗體、模塊等文件從當(dāng)前工程中移除(只是不再屬于工程,但文件還在),可在工程資源管理器窗口中右擊該文件,然后從彈出的快捷菜單中選擇“移除×××”,如右圖所示。此外,借助工程資源管理器快捷菜單,用戶還可以保存、另存或打印文件。3)從工程中移除文件工程資源管理器快捷菜單2.工程屬性two如果需要的話,用戶還可以為工程設(shè)置屬性,為此,可以選擇“工程”菜單中的“工程屬性”命令,打開“工程屬性”對話框,如右圖所示。利用“工程屬性”對話框可以設(shè)置工程的類型、名稱和啟動對象。默認(rèn)情況下,工程的啟動對象是工程中第一個(gè)創(chuàng)建的窗體。不過,如果用戶在某個(gè)模塊文件中編寫了“SubMain”過程,也可將該過程設(shè)置為啟動對象?!肮こ虒傩浴睂υ捒?.3VB應(yīng)用程序開發(fā)步驟與開發(fā)基礎(chǔ)1.3.1VB集成開發(fā)環(huán)境1.3.2關(guān)于VB工程Section實(shí)例1-2——制作第一個(gè)VB程序?qū)嵗?-2制作第一個(gè)VB程序?qū)嵗?-2制作第一個(gè)VB程序編制一個(gè)應(yīng)用程序,運(yùn)行時(shí)顯示一個(gè)窗口,其中包括了一個(gè)內(nèi)容為“我的第一個(gè)VB程序”標(biāo)簽,以及“白色窗體”“紅色文本”和“結(jié)束程序”3個(gè)按鈕,其運(yùn)行效果如下圖所示。(1)單擊“白色窗體”按鈕時(shí),將窗體的背景顏色設(shè)置為白色。(2)單擊“紅色文本”按鈕時(shí),將標(biāo)簽中文本的顏色(前景色)設(shè)置為紅色。(3)單擊“結(jié)束程序”按鈕時(shí),結(jié)束程序的運(yùn)行。要求程序運(yùn)行效果1.創(chuàng)建工程one啟動VB,在出現(xiàn)的“新建工程”對話框中直接單擊“打開”按鈕,進(jìn)入VB集成開發(fā)環(huán)境。此時(shí),系統(tǒng)將自動創(chuàng)建一個(gè)名為“工程1”的工程,且該工程的窗體設(shè)計(jì)器中顯示了一個(gè)有待設(shè)計(jì)的空白窗體,其默認(rèn)名稱為Form1。實(shí)例1-2制作第一個(gè)VB程序2.設(shè)計(jì)應(yīng)用程序界面two步驟1單擊選中工具箱中的Label控件圖標(biāo)

,然后將鼠標(biāo)指針定位在窗體中的適當(dāng)位置(此時(shí)鼠標(biāo)指針呈十字狀),拖動鼠標(biāo),畫出適當(dāng)大小的標(biāo)簽,其默認(rèn)名稱為Label1。步驟2雙擊3次工具箱中的CommandButton控件圖標(biāo)

,在窗體中心位置創(chuàng)建3個(gè)標(biāo)準(zhǔn)尺寸的命令按鈕,其名稱分別為Command1、Command2和Command3。步驟3用鼠標(biāo)拖動前面創(chuàng)建的標(biāo)簽和3個(gè)命令按鈕,將它們調(diào)整到合適的位置,如右圖所示。窗體中創(chuàng)建1個(gè)標(biāo)簽和3個(gè)命令按鈕并移動其位置實(shí)例1-2制作第一個(gè)VB程序提示按住【Ctrl】或【Shift】鍵,單擊窗體中的對象,可同時(shí)選中多個(gè)對象,然后選擇“格式”菜單中“對齊”“統(tǒng)一尺寸”“水平間距”“垂直間距”等子菜單中的各種命令,可統(tǒng)一調(diào)整這些控件在窗體中的位置、大小及間距。實(shí)例1-2制作第一個(gè)VB程序3.設(shè)置對象屬性three步驟1在窗體設(shè)計(jì)器中單擊選中窗體中的Label1對象,在其屬性窗口左側(cè)的屬性名稱中單擊“Caption”,將其右側(cè)的默認(rèn)屬性值“Label1”修改為“我的第一個(gè)VB程序”。步驟2在屬性名稱中單擊“Font”,然后單擊右側(cè)的按鈕,打開“字體”對話框,設(shè)置標(biāo)簽控件的字體大小為“四號”,如左圖所示。設(shè)置標(biāo)簽控件的Font屬性步驟3在窗體設(shè)計(jì)器中單擊選中Command1對象,雙擊其屬性窗口左側(cè)的屬性名稱“Caption”,然后在其右側(cè)的文本框中輸入“白色窗體”四字,并參照步驟2修改其字體、字號為“楷體”“小四”。3.設(shè)置對象屬性three步驟4參照步驟3,分別設(shè)置Command2的Caption屬性為“紅色文本”,Command3的Caption屬性為“結(jié)束程序”,其Font屬性均為楷體、小四。步驟5在窗體空白處單擊,利用屬性窗口設(shè)置其Caption屬性為“窗體”,結(jié)果如右圖所示。設(shè)置對象屬性后效果實(shí)例1-2制作第一個(gè)VB程序?qū)嵗?-2制作第一個(gè)VB程序4.編寫程序代碼four根據(jù)要求,需要在代碼窗口編寫相應(yīng)的程序來處理單擊3個(gè)按鈕時(shí)需要完成的任務(wù),具體操作如下:步驟1雙擊窗體中的“白色窗體”按鈕,打開代碼窗口,此時(shí)系統(tǒng)已自動給出Command1對象Click事件過程的過程頭和過程尾,如右圖所示。代碼窗口實(shí)例1-2制作第一個(gè)VB程序4.編寫程序代碼four步驟2在過程頭和過程尾之間輸入以下程序代碼:Form1.BackColor=vbWhite該事件過程的功能是:當(dāng)鼠標(biāo)單擊Command1按鈕時(shí),將窗體的背景顏色設(shè)置為白色。其中,vbWhite為系統(tǒng)預(yù)定義常量,表示白色。實(shí)例1-2制作第一個(gè)VB程序4.編寫程序代碼four提示在代碼窗口中輸入“Form1.”時(shí),代碼窗口的“自動列出成員”功能會自動啟動,并會自動列出當(dāng)前對象的屬性與方法供用戶選擇(參見圖1-21),此時(shí)只要雙擊選擇某個(gè)屬性或方法即可。所謂方法,是指一組與對象相關(guān)的子程序,它們分別用于完成不同的功能。例如,窗體的Hide方法和Show方法分別用來隱藏和顯示窗體。在“自動列出成員”列表中,屬性以標(biāo)識,方法以標(biāo)識。另外,某些方法有參數(shù),某些方法沒有參數(shù)。代碼窗口的“自動列出成員”功能4.編寫程序代碼four實(shí)例1-2制作第一個(gè)VB程序步驟3在代碼窗口的對象下拉列表中選擇Command2,在其Click事件過程中輸入以下程序代碼:Label1.ForeColor=vbRed該事件過程的功能是:當(dāng)鼠標(biāo)單擊Command2按鈕時(shí),將標(biāo)簽文本的顏色設(shè)為紅色。實(shí)例1-2制作第一個(gè)VB程序4.編寫程序代碼four步驟4在代碼窗口的“對象”下拉列表中選擇Command3,在其Click事件過程中輸入以下程序代碼:End該事件過程的功能是:當(dāng)鼠標(biāo)單擊Command3按鈕時(shí),將結(jié)束程序運(yùn)行。至此,程序設(shè)計(jì)工作結(jié)束,編寫的3個(gè)事件過程如下圖所示。實(shí)例1-2制作第一個(gè)VB程序事件過程代碼4.編寫程序代碼four5.保存程序Five

實(shí)例1-2制作第一個(gè)VB程序步驟1單擊工具欄中的“保存工程”按鈕,打開“文件另存為”對話框。打開“保存在”下拉列表,選擇希望保存窗體文件的文件夾;在“文件名”編輯框中輸入要保存的窗體文件名“Form1-2-1.frm”,如左側(cè)上圖所示。步驟2單擊“保存”按鈕,保存窗體文件。接下來系統(tǒng)將自動打開“工程另存為”對話框,在“文件名”編輯框中輸入要保存的工程文件名“課堂實(shí)例1-2.vbp”,如左側(cè)下圖所示。單擊“保存”按鈕,保存工程文件?!拔募泶鏋椤睂υ捒蚺c“工程另存為”對話框6.屬性窗口six實(shí)例1-2制作第一個(gè)VB程序單擊“標(biāo)準(zhǔn)”工具欄中的“啟動”按鈕,或者按【F5】鍵,執(zhí)行當(dāng)前的應(yīng)用程序。如果程序出現(xiàn)錯(cuò)誤或未能實(shí)現(xiàn)要求,則需要進(jìn)行調(diào)試修改,直到正確為止。此外,VB提供了多種終止程序運(yùn)行的方法,例如,單擊“標(biāo)準(zhǔn)”工具欄中的“結(jié)束”按鈕,關(guān)閉窗體,單擊事先定義好的結(jié)束程序運(yùn)行的按鈕等。如果需要的話,用戶還可單擊“標(biāo)準(zhǔn)”工具欄中的“中斷”按鈕,臨時(shí)中斷程序,然后在修改好程序后單擊“標(biāo)準(zhǔn)”工具欄中的“啟動”按鈕繼續(xù)運(yùn)行程序。提示當(dāng)程序處于運(yùn)行狀態(tài)時(shí),工具箱、屬性窗口等被自動關(guān)閉,并且工具欄中的很多工具都變成了不可使用的灰色,如下圖所示。因此,要修改程序,用戶必須首先退出程序運(yùn)行狀態(tài)。處于運(yùn)行狀態(tài)的應(yīng)用程序7.生成可執(zhí)行文件seven對于調(diào)試好的程序,選擇“文件”菜單中的“生成……”命令,可將該程序生成能夠脫離VB集成環(huán)境而在Windows平臺上獨(dú)立運(yùn)行的可執(zhí)行文件(.exe文件)。本例中,選擇“文件”菜單下的“生成課堂實(shí)例1-2.exe”命令,打開如右圖所示的“生成工程”對話框。選擇文件保存路徑并輸入文件名,然后單擊“確定”按鈕即可。“生成工程”對話框?qū)嵗?-2制作第一個(gè)VB程序8.執(zhí)行可執(zhí)行文件eight退出VB后,在硬盤上找到保存的文件“課堂實(shí)例1-2.exe”,雙擊運(yùn)行程序并觀察程序運(yùn)行結(jié)果。實(shí)例1-2制作第一個(gè)VB程序?qū)嵗?-2制作第一個(gè)VB程序9.程序的打包與發(fā)布nine對于一些復(fù)雜的程序,用戶可能需要生成帶安裝程序的程序包。為此,可選擇“外接程序”菜單中的“外接程序管理器”命令,打開“外接程序管理器”對話框。在“可用外接程序”列表中單擊選中“打包和展開向?qū)А?,然后單擊“確定”按鈕,如左圖所示。“外接程序管理器”對話框?qū)嵗?-2制作第一個(gè)VB程序9.程序的打包與發(fā)布nine接下來系統(tǒng)將打開如下左圖所示“打包和展開向?qū)А睂υ捒?,單擊“打包”按鈕,即可按照向?qū)蓱?yīng)用程序的標(biāo)準(zhǔn)安裝包,如下右圖所示。以后用戶只要執(zhí)行setup.ex程序,系統(tǒng)會自動把應(yīng)用程序安裝到計(jì)算機(jī)中,并會在“開始”菜單中創(chuàng)建相應(yīng)的菜單項(xiàng)。“打包和展開向?qū)А睂υ捒驑?biāo)準(zhǔn)安裝包文件本例詳細(xì)介紹了一個(gè)VB應(yīng)用程序的完整開發(fā)步驟。雖然程序功能很簡單,但其開發(fā)步驟完全適用于其他大型VB程序的開發(fā)。由該例可以看出,在VB中開發(fā)應(yīng)用程序的步驟大致如下:實(shí)例1-2制作第一個(gè)VB程序建立工程保存程序設(shè)置

對象屬性編寫

程序代碼停止Stop開始Start運(yùn)行

調(diào)試程序生成

可執(zhí)行文件程序打包與發(fā)布在VB集成開發(fā)環(huán)境中,窗體布局窗口用來設(shè)置窗體啟動時(shí)在屏幕上的位置。對于代碼窗口,我們在前面已多次使用,由于此窗口使用較多,故此處再做一些介紹。窗體布局窗口主要用來指定應(yīng)用程序運(yùn)行時(shí)窗體的初始位置,如下圖所示。該窗口中的黑色區(qū)域?yàn)樘摂M的顯示器窗口,F(xiàn)orm1小圖像為虛擬的當(dāng)前窗體。使用鼠標(biāo)直接拖動Form1小圖像可調(diào)整其位置。當(dāng)程序運(yùn)行時(shí),當(dāng)前窗體就會顯示在真實(shí)顯示器窗口的相應(yīng)位置。1.窗體布局窗口one虛擬的顯示

器窗口虛擬的當(dāng)前窗體“窗體布局”窗口1.窗體布局窗口one另外,在虛擬屏幕上選中窗體后,右擊鼠標(biāo)會彈出一個(gè)快捷菜單,選擇“啟動位置”子菜單中的命令,用戶可以方便地設(shè)置應(yīng)用程序啟動時(shí)窗體在屏幕上的位置,這幾個(gè)選項(xiàng)的意義如下:Windows缺省屏幕中心手工所有者中心窗體的位置隨機(jī)確定。窗體將顯示在調(diào)用它窗口的中心。窗體將顯示在屏幕的中心。窗體將顯示在屏幕的左上角。提示若當(dāng)前集成開發(fā)環(huán)境中沒有顯示窗體布局窗口,可選擇“視圖”菜單中的“窗體布局窗口”命令,或單擊“標(biāo)準(zhǔn)”工具欄中的“窗體布局窗口”按鈕。2.代碼窗口two通過前面的例子,大家已經(jīng)看到,代碼窗口主要用于為窗體或模塊文件編寫程序。要打開代碼窗口,有以下3種方法。選擇“視圖”菜單中的“代碼窗口”命令。雙擊窗體編輯器中的控件或者窗體。選中工程資源管理器中的一個(gè)窗體或標(biāo)準(zhǔn)模塊,然后單擊“查看代碼”按鈕

。如下圖所示,代碼窗口主要由以下幾個(gè)部分組成:過程下拉列表框代碼編輯區(qū)對象下拉列表框過程查看按鈕全模塊查看按鈕代碼窗口對象下拉列表框顯示選定對象的名稱。單擊下拉列表框中的下拉箭頭,可顯示窗體中所有對象的名稱。需要特別注意的是,其中的“(通用)”選項(xiàng)表示通用代碼,與特定對象無關(guān),一般用于聲明模塊級變量或編寫自定義過程。此時(shí)過程名稱為“(聲明)”。過程下拉列表框顯示與選定對象相關(guān)的事件過程名稱(或用戶自定義過程名)。單擊下拉列表框中的下拉箭頭,可顯示當(dāng)前選定對象的所有事件過程名稱。代碼編輯區(qū)選定對象名稱和事件名稱后,代碼框中將顯示所選對象的事件過程模板,用戶只需在模板內(nèi)輸入相應(yīng)的程序代碼即可。過程/全模塊查看按鈕單擊這兩個(gè)按鈕,可以查看所選過程或當(dāng)前模塊中全部過程的代碼。很多人在學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計(jì)時(shí)都感到比較困難,尤其是一些概念感到不好理解。為此,我們下面再來簡要介紹一些與面向?qū)ο蟪绦蛟O(shè)計(jì)相關(guān)的概念,以便讀者更好地學(xué)習(xí)VB。1.類與對象one類是對象的模型,規(guī)定了對象的公共特征和功能。對象是類的具體實(shí)例,它繼承了類的特征和功能,但用戶可以設(shè)置對象的特征值并使用類提供的功能。例如,“人”屬于類,每個(gè)人屬于對象?!叭恕本哂腥说墓餐卣鳎?,都有頭、胸、腿等。但是,具體到每個(gè)人,其長相、身高、體重等又有所不同。提示程序設(shè)計(jì)角度來看,類相當(dāng)于封裝了數(shù)據(jù)與程序的實(shí)體。由于對象源于類,因此,對象也可以這樣看。同樣,VB中的窗體和工具箱中的控件都是類(控件類)。當(dāng)用戶創(chuàng)建具體的窗體,以及在窗體上畫出具體的控件時(shí),這個(gè)具體的窗體和控件便成為類的實(shí)例,即對象。在應(yīng)用程序中,我們只能針對對象進(jìn)行編程,例如,修改對象的屬性值,為對象編寫事件處理程序,以及調(diào)用對象的方法等。2.對象與對象屬性two每一個(gè)對象都需要有一組屬性來描述其特征,如大小、位置和色彩等。如前所述,我們可以利用屬性窗口來設(shè)置對象的屬性。3.對象的事件和事件過程three事件(Event)是能夠被對象識別和響應(yīng)的動作。VB中的事件分為系統(tǒng)事件和用戶事件兩類。系統(tǒng)事件由系統(tǒng)觸發(fā),如窗體的Load事件在加載窗體時(shí)由系統(tǒng)觸發(fā);用戶事件則由用戶操作觸發(fā),如單擊窗體或按鈕時(shí)將分別觸發(fā)窗體或按鈕的Click事件。當(dāng)對象上發(fā)生某一事件后,對象對該事件的反應(yīng)是通過事件過程來實(shí)現(xiàn)的。因此,VB編程很大程度上就是編寫各種事件處理程序。要為某個(gè)對象編寫事件處理程序,可首先在代碼窗口的“對象”下拉列表中選擇該對象,再在“過程”下拉列表選擇該對象需響應(yīng)的事件,然后編寫事件處理程序即可。在VB中,大多數(shù)對象都有多個(gè)可能發(fā)生的事件,此時(shí)務(wù)必搞清楚每個(gè)事件觸發(fā)的條件,然后決定響應(yīng)哪些事件,最后再為所要響應(yīng)的事件編寫事件處理程序。4.對象的方法four方法是內(nèi)置于對象的一組特殊子程序(由類繼承而來),用于讓對象完成某項(xiàng)操作。一個(gè)對象可以有多個(gè)方法,每個(gè)方法都代表著對象為用戶提供的一種功能,如窗體的Hide和Show方法分別用來隱藏和顯示窗體。VB通過程序代碼調(diào)用方法的格式為:Debug.Print“你好!”創(chuàng)建孔特征對象名稱.方法名稱例如:4.對象的方法four運(yùn)行時(shí),程序?qū)凇傲⒓础贝翱谥酗@示字符串“你好!”。這里的Debug對象表示“立即”窗口(該窗口主要用來調(diào)試程序)。如果調(diào)用方法時(shí)省略了“對象名稱”,那么所調(diào)用的方法被默認(rèn)為當(dāng)前對象的方法。因此,如果當(dāng)前對象為窗體,若將前面的例子改為:Print"你好!"則運(yùn)行程序時(shí)將在當(dāng)前窗體中顯示字符串“你好!”。THEEND謝謝觀看!VisualBasic

程序設(shè)計(jì)教程

第二章窗體及其操作CHAPTER窗體的結(jié)構(gòu)與屬性窗體事件與方法2.1窗體的結(jié)構(gòu)與屬性2.1.1窗體結(jié)構(gòu)2.1.2窗體屬性Section窗體主要由標(biāo)題欄和窗體區(qū)域兩部分構(gòu)成。標(biāo)題欄上從左至右依次為系統(tǒng)菜單圖標(biāo)、窗體名稱、最小化按鈕、最大化按鈕和關(guān)閉按鈕。單擊窗體左上角的系統(tǒng)菜單圖標(biāo),將顯示一個(gè)系統(tǒng)命令菜單。若在運(yùn)行程序時(shí)雙擊該圖標(biāo),將關(guān)閉窗口。一是在設(shè)計(jì)程序時(shí)利用屬性窗口設(shè)置二是運(yùn)行應(yīng)用程序時(shí)通過程序代碼設(shè)置窗體屬性決定了窗體的外觀和操作。用戶可以用如下兩種方法來設(shè)置窗體屬性:大部分屬性既可以在設(shè)計(jì)時(shí)在屬性窗口中設(shè)置,也可以利用程序代碼設(shè)置,而有些屬性只能用程序代碼或?qū)傩源翱谠O(shè)置。通常把只能通過屬性窗口設(shè)置的屬性稱為“只讀屬性”,如窗體的名稱就是只讀屬性,在應(yīng)用程序運(yùn)行期間是不能修改的。1.

Name(名稱)ONE該屬性用來定義窗體的名稱,它是在程序代碼中使用的對象名,它與對象的標(biāo)題(Caption)屬性完全是兩回事。Name屬性屬于只讀屬性,在程序運(yùn)行期間是不能改變的。提示在屬性窗口中,Name屬性通常位于屬性列表的最上方,并顯示為“(名稱)”和屬性值,如左圖所示。屬性窗口中的Name屬性2.

Caption(標(biāo)題)TWO該屬性用來定義窗體的標(biāo)題。啟動VB或者執(zhí)行“工程”菜單中的“添加窗體”命令后,窗體使用的是默認(rèn)標(biāo)題,如Form1、Form2等。通過設(shè)置Caption屬性可以把窗體標(biāo)題改為所需要的名字。該屬性既可以通過屬性窗口設(shè)置,也可以通過程序代碼設(shè)置,其格式如下:窗體名稱.Caption[=字符串]例如提示值得指出的是VB中窗體和控件的很多屬性既可用于設(shè)置屬性值,也可以用于返回屬性值。具體是哪種情況,取決于如何使用屬性。如果屬性位于賦值語句中“=”的左側(cè),則表示設(shè)置屬性值。否則,如果屬性位于賦值語句中“=”的右側(cè),則表示獲取屬性值,如前面的例子所示。Form1.Caption="VisualBasicTest"上述語句的作用是把窗體標(biāo)題設(shè)置為“VisualBasicTest”。如果省略“=字符串”,則系統(tǒng)將返回窗體的當(dāng)前標(biāo)題。例如:DimmyFormCasString '定義字符串變量myForm=Form1.Caption '獲取窗體標(biāo)題2.1窗體的結(jié)構(gòu)與屬性2.1.2窗體屬性3.

Height、Width(高、寬)three這兩個(gè)屬性用來指定或返回窗體的高度和寬度(含邊框和標(biāo)題欄),其單位為twip(緹)。緹是一個(gè)與屏幕無關(guān)的單位,用來保證應(yīng)用程序?qū)ζ聊辉氐亩ㄎ缓捅壤谒械娘@示系統(tǒng)上的一致性。一緹等價(jià)于1/20個(gè)打印機(jī)的磅。一邏輯英寸大約有1440緹,一邏輯厘米約567緹(打印時(shí)的一英寸或一厘米所對應(yīng)的屏幕上的長度)。例如:'在窗體被加載時(shí),將窗體的大小設(shè)置為屏幕大小的百分之七十五并使窗體居中顯示PrivateSubForm_Click()Width=Screen.Width*.75 '設(shè)置窗體的寬度Height=Screen.Height*.75 '設(shè)置窗體的高度Left=(Screen.Width-Width)/2 '在水平方向上居中顯示Top=(Screen.Height-Height)/2 '在垂直方向上居中顯示EndSub這兩個(gè)屬性用來設(shè)置或返回窗體頂邊和左邊距屏幕頂邊和左邊的距離,單位為twip。對于控件對象而言,Left和Top分別指控件的左邊和頂邊與窗體的左邊和頂邊的相對距離。4.

Top、Left(頂邊、左邊位置)three5.

BackColor(背景顏色)Five

設(shè)置背景顏色該面板有兩個(gè)選項(xiàng)卡,默認(rèn)顯示“系統(tǒng)”選項(xiàng)卡,其中給出了系統(tǒng)的配色方案。要選擇某種顏色,可直接單擊選擇。如果希望選擇其他顏色,可打開“調(diào)色板”選項(xiàng)卡,然后單擊選擇某種顏色,如左圖所示。設(shè)置背景顏色在VB中,顏色是通過一組十六進(jìn)制數(shù)表示的,其格式是在兩個(gè)&之間包含一個(gè)以H開頭的8位16進(jìn)制數(shù),如&HED34755&。該屬性用來設(shè)置窗體的背景顏色。在屬性窗口中單擊選中BackColor屬性,單擊右側(cè)出現(xiàn)的下拉箭頭

,系統(tǒng)將顯示一個(gè)面板,如左圖所示。6.

BorderStyle(邊框類型)six設(shè)

值含

義0-None窗體無邊框1-FixedSingle固定單邊框。此時(shí)窗體標(biāo)題欄中只包含控制菜單按鈕、窗體標(biāo)題和關(guān)閉窗口按鈕。程序運(yùn)行時(shí)窗口大小不能調(diào)整2-Sizable(默認(rèn)值)可調(diào)整的邊框。窗體標(biāo)題欄中可包含控制菜單按鈕、窗體標(biāo)題,以及窗口最大化、窗口最小化和關(guān)閉窗口按鈕。程序運(yùn)行時(shí)窗口大小可調(diào)3-FixedDialog固定對話框。與1-FixedSingle作用相同4-FixedToolWindow固定工具窗口。與1-FixedSingle、3-FixedDialog作用相同,但標(biāo)題欄高度被壓縮5-SizableToolWindow可變大小工具窗口。作用同4-FixedToolWindow,但程序運(yùn)行時(shí)窗口大小可調(diào)VisualBasic該屬性用于確定窗體邊框的類型,共有六個(gè)預(yù)定義值,其意義如表所示:BorderStyle屬性是“只讀屬性”,它只能在設(shè)計(jì)階段設(shè)置,不能在程序運(yùn)行期間修改。要改變BorderStyle的屬性值,可以通過雙擊屬性名稱“BorderStyle”進(jìn)行切換,也可以在右側(cè)的下拉列表中進(jìn)行選擇,如圖所示。設(shè)置BorderStyle屬性除窗體外,BorderStyle屬性還可用于多種控件。但是對于不同的控件,其設(shè)置值并不完全一樣。7.

Picture(圖像)seven該屬性用于為窗體設(shè)置背景圖像,如圖所示:為窗體設(shè)置背景圖像在設(shè)計(jì)階段,從屬性窗口中單擊選擇該屬性,單擊右側(cè)出現(xiàn)的

按鈕,將打開“加載圖片”對話框。利用該對話框選擇一個(gè)圖像文件,即可將該圖像作為窗體背景。該屬性的缺省值為“(None)”,表示未指定圖像。設(shè)置圖像后,其數(shù)值變?yōu)椤埃˙itmap)”。要?jiǎng)h除設(shè)置的圖像,可雙擊屬性值,然后按【Del】鍵。該屬性支持多種格式的圖像文件,如.JPG.、BMP、.WMF、.GIF等。該屬性用于控制窗體在應(yīng)用程序運(yùn)行時(shí)是否允許使用。其默認(rèn)值為True,表示在程序運(yùn)行時(shí)窗體可用。如果將該屬性值設(shè)置為False,表示在程序運(yùn)行時(shí)禁止使用該窗體。此時(shí)窗體將呈淺灰色,表示窗體出于不活動狀態(tài)8.Enabled(允許)eight該屬性既可以在設(shè)計(jì)時(shí)在屬性窗口中設(shè)置,也可以在程序運(yùn)行期間通過程序代碼設(shè)置,其格式如下:對象.Enabled[=Boolean值]提示窗體被禁止時(shí),其窗口控制按鈕和窗體中的各種對象均無法操作。9.

Visible(可見性)nine該屬性用來控制程序應(yīng)用程序運(yùn)行時(shí)窗體是否可見。如果將該屬性設(shè)置為False,表示隱藏窗體;如果設(shè)置為True,表示窗體可見。對象.Visible[=Boolean值]對于窗體而言,設(shè)置其Visible屬性值為True,相當(dāng)于調(diào)用窗體的Show方法;類似地,設(shè)置Visible屬性值為False,相當(dāng)于調(diào)用窗體的Hide方法。如下例所示:Form1.Visible=True '設(shè)置Visible屬性值為TrueForm1.Show '調(diào)用窗體的Show方法Form1.Visible=False '設(shè)置Visible屬性值為FalseForm1.Hide '調(diào)用窗體的Hide方法該屬性既可在設(shè)計(jì)時(shí)設(shè)置,也可用程序設(shè)置。利用程序設(shè)置該屬性的格式如下:提示只有在運(yùn)行程序時(shí),該屬性才起作用。也就是說,在設(shè)計(jì)階段,即使把窗體或控件的Visible屬性設(shè)置為False,窗體也仍然可見,程序運(yùn)行后才會消失。默認(rèn)情況下,應(yīng)用程序運(yùn)行時(shí),只有啟動窗體可見,其他窗體被自動隱藏。要顯示其他窗體,可設(shè)置該窗體的Visible屬性值為True或者調(diào)用該窗體的Show方法。10.

ControlBox(控制框)ten該屬性用來設(shè)置是否在窗體的標(biāo)題欄中顯示控制菜單按鈕,以及窗口最大化、最小化、關(guān)閉等控制按鈕,其默認(rèn)值為True。如果將該屬性設(shè)置為False,即使在設(shè)計(jì)狀態(tài),窗體的標(biāo)題欄中也將不再顯示控制菜單按鈕,以及窗口最大化、最小化、關(guān)閉等控制按鈕。11.Icon(圖標(biāo))eleven該屬性用來設(shè)置窗體最小化時(shí)的圖標(biāo)。通常把該屬性設(shè)置為.ICO格式的圖標(biāo)文件。如果在設(shè)計(jì)階段設(shè)置該屬性,可以從屬性窗口的屬性列表中單擊選擇該屬性,然后單擊設(shè)置框右側(cè)的

按鈕,再從打開的“加載圖標(biāo)”對話框中選擇一個(gè)圖標(biāo)文件。Moveable屬性用于設(shè)置應(yīng)用程序運(yùn)行時(shí)窗口是否可以移動,其默認(rèn)值為True,此時(shí)用戶可以在窗口標(biāo)題欄區(qū)單擊并拖動來移動窗口在屏幕上的位置。如果將該屬性值設(shè)置為Flase,則窗口將不能再被移動。12.

MousePointer(鼠標(biāo)指針)與Moveable(可移動)twelveMousePointer屬性用于設(shè)置當(dāng)應(yīng)用程序運(yùn)行時(shí),當(dāng)鼠標(biāo)位于窗口內(nèi)時(shí)鼠標(biāo)指針的形狀。鼠標(biāo)指針的默認(rèn)形狀為

,通過修改MousePointer屬性,可設(shè)置鼠標(biāo)指針形狀為

、

、

等。13.

StartUpPosition(窗口啟動位置)thirteen1-所有者中心窗口顯示在所屬項(xiàng)目的中心。0-手工未指定初始位置2-屏幕中心窗口顯示在屏幕中心。該屬性用于設(shè)置當(dāng)應(yīng)用程序運(yùn)行時(shí),窗口啟動時(shí)的初始位置。其默認(rèn)值為“3-窗口缺省”,表示窗口的初始位置為屏幕的左上角。其他幾個(gè)選項(xiàng)的意義如下:14.

WindowState(窗口狀態(tài))fourteen該屬性用來設(shè)置應(yīng)用程序運(yùn)行時(shí)窗口的狀態(tài)。該屬性既可以在屬性窗口設(shè)置,也可以用程序代碼設(shè)置,具體的格式如下:對象.WindowState[=設(shè)置值]WindowsState的設(shè)置值可為0、1、2,各數(shù)值的含義如下:0:窗口處于正常狀態(tài)。1:最小化窗口。2:最大化窗口。2.2窗體事件與方法2.2.1常用的窗體事件實(shí)例2-1——使用鼠標(biāo)繪制線條2.2.2常用的窗體方法Section實(shí)例2-2——編寫加法計(jì)算程序1)Activate(活動)事件與Deactivate(不活動)事件當(dāng)一個(gè)窗口變?yōu)榛顒哟翱跁r(shí)將觸發(fā)Activate事件,當(dāng)一個(gè)窗口不再是活動窗口時(shí)將觸發(fā)Deactivate事件。可以通過在運(yùn)行應(yīng)用程序時(shí)在窗體中單擊,將窗體的Visible屬性設(shè)置為True,調(diào)用窗體的Show方法或SetFocus方法來激活窗體,從而觸發(fā)窗體的Activate事件。VB的常用窗體事件2)Click(單擊)事件與DblClick(雙擊)事件在窗口內(nèi)用鼠標(biāo)單擊窗口空白處將觸發(fā)Click事件,用鼠標(biāo)雙擊窗口空白處將觸發(fā)DbClick事件。所謂“雙擊”,實(shí)際觸發(fā)了兩個(gè)事件,第一次按鍵時(shí)觸發(fā)Click事件,第二次按鍵時(shí)觸發(fā)DblClick事件。提示對于不同的控件,產(chǎn)生Click事件的時(shí)機(jī)可能稍有不同。例如,當(dāng)一個(gè)命令按鈕獲得焦點(diǎn)時(shí)用戶按下空格鍵也會產(chǎn)生命令按鈕的Click事件。3)DragDrop(拖放)事件與DragOver(拖動)事件當(dāng)一個(gè)完整的拖放動作完成后,將觸發(fā)DragDrop事件;當(dāng)用戶進(jìn)行拖放操作時(shí)將觸發(fā)DragOver事件,可使用此事件對鼠標(biāo)指針在一個(gè)有效目標(biāo)上的進(jìn)入、離開或停頓等進(jìn)行監(jiān)控。例如:'將一個(gè)PictureBox控件拖放到另一個(gè)PictureBox控件上,即將一幅圖像拖到'另一幅圖像上PrivateSubPicture3_DragDrop(SourceAsControl,XasSingle,YAsSingle)IfTypeOfSourceIsPictureBoxThen'將Picture3位圖設(shè)置為與源控件相同Picture3.Picture=Source.PictureEndIfEndSubPrivateSubPicture1_DragOver(SourceAsControl,XAsSingle,_YAsSingle,StateAsInteger)SelectCaseStateCasevbEnter 'vbEnter常數(shù)數(shù)值為0,表示源控件拖入目標(biāo) '裝載圖標(biāo)Source.DragIcon=LoadPicture("ICONS\ARROWS\POINT03.ICO")CasevbLeave 'vbLeave常數(shù)數(shù)值為1,表示源控件拖出目標(biāo)Source.DragIcon=LoadPicture() '卸載圖標(biāo)EndSelectEndSub

PrivateSubPicture1_DragDrop(SourceAsControl,XAsSingle,YAsSingle)Source.DragIcon=LoadPicture() '卸載圖標(biāo)EndSub又如,當(dāng)一個(gè)TextBox控件被拖過一個(gè)PictureBox控件時(shí),指針從缺省的箭頭變?yōu)樘囟ǖ膱D標(biāo)。當(dāng)源被拖到其他地方時(shí),指針恢復(fù)到缺省的狀態(tài)。4)

GotFocus(獲得焦點(diǎn))事件與LostFocus(失去焦點(diǎn))事件當(dāng)窗體獲得焦點(diǎn)時(shí)將觸發(fā)GotFocus事件,當(dāng)窗體失去焦點(diǎn)時(shí)將觸發(fā)LostFocus事件。其中,窗體獲得焦點(diǎn)可以通過按【Tab】鍵,在窗體中單擊,或用代碼調(diào)用窗體的SetFocus方法來實(shí)現(xiàn)。同時(shí),只有當(dāng)窗體的Enabled和Visible屬性都設(shè)置為True時(shí),窗體才能接收焦點(diǎn)。5)KeyDown(按下按鍵)事件與KeyUp(松開按鍵)事件當(dāng)窗體獲得焦點(diǎn)時(shí),按下或松開某個(gè)按鍵將分別觸發(fā)KeyDown事件與KeyUp事件。這兩個(gè)事件的過程定義如下:PrivateSubForm_KeyDown(keycodeAsInteger,shiftAsInteger)PrivateSubForm_KeyUp(keycodeAsInteger,shiftAsInteger)'響應(yīng)F2鍵以及與F2鍵與Alt,Shift和Ctrl組合的鍵盤處理程序PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)DimShiftDown,AltDown,CtrlDown,TxtShiftDown=(ShiftAndvbShiftMask)>0 '是否按下Shift鍵AltDown=(ShiftAndvbAltMask)>0 '是否按下Alt鍵CtrlDown=(ShiftAndvbCtrlMask)>0 '是否按下Ctrl鍵IfKeyCode=vbKeyF2Then '如果按下F2鍵 '如果同時(shí)按下Shift、Ctrl和Alt鍵 IfShiftDownAndCtrlDownAndAltDownThen Txt="Shift+Ctrl+Alt+F2." ElseIfShiftDownAndAltDownThen Txt="Shift+Alt+F2." ElseIfShiftDownAndCtrlDownThen Txt="Shift+Ctrl+F2.” 其中,keycode為鍵代碼,shift用來指明是否按下或松開了【Shift】、【Ctrl】或【Alt】鍵(分別對應(yīng)值1、2、4)。如果同時(shí)按下或松開了【Shift】、【Ctrl】或【Alt】鍵,則將其對應(yīng)數(shù)值相加。例如,如果shift為6,表示同時(shí)按下或松開了【Ctrl】和【Alt】鍵。例如:ElseIfCtrlDownAndAltDownThen Txt="Ctrl+Alt+F2." ElseIfShiftDownThen Txt="Shift+F2." ElseIfCtrlDownThen Txt="Ctrl+F2." ElseIfAltDownThen Txt="Alt+F2." ElseIfShift=0Then Txt="F2." EndIf Print"Youpressed"&TxtEndIfEndSub6)KeyPress(按下并松開按鍵)事件當(dāng)用戶按下和松開一個(gè)ANSI鍵時(shí)將觸發(fā)該事件,具有焦點(diǎn)的對象接收該事件。該事件的過程定義如下:PrivateSubForm_KeyPress(keyasciiAsInteger)7)MouseDown(按下鼠標(biāo)按鍵)事件、MouseUp(釋放鼠標(biāo)按鍵)事件當(dāng)鼠標(biāo)指針在窗體中,用戶按下鼠標(biāo)按鍵時(shí)將觸發(fā)MouseDown事件;當(dāng)鼠標(biāo)指針在窗體中,用戶釋放鼠標(biāo)按鍵時(shí)將觸發(fā)MouseUp事件。這兩個(gè)事件的過程定義如下:PrivateSubForm_MouseDown(buttonAsInteger,shiftAsInteger,xAsSingle,_ yAsSingle)PrivateSubForm_MouseUp(buttonAsInteger,shiftAsInteger,xAsSingle,yAsSingle)button返回一個(gè)整數(shù),用于表明用戶按下或釋放了鼠標(biāo)的左鍵、右鍵或中鍵(分別對應(yīng)數(shù)值1、2、4)。shift用來指明是否同時(shí)按下或松開了【Shift】、【Ctrl】或【Alt】鍵(分別對應(yīng)值1、2、4)。x,y返回鼠標(biāo)指針的當(dāng)前坐標(biāo)。8)

MouseMove(移動鼠標(biāo))事件當(dāng)鼠標(biāo)指針在窗體中移動時(shí)將觸發(fā)MouseMove事件。MouseMove事件伴隨鼠標(biāo)指針在對象間移動時(shí)連續(xù)不斷地產(chǎn)生。除非有另一個(gè)對象捕獲了鼠標(biāo),否則,當(dāng)鼠標(biāo)指針在對象的邊界范圍內(nèi)時(shí),該對象就能接收MouseMove事件。該事件的過程定義如下:PrivateSubForm_MouseMove(buttonAsInteger,shiftAsInteger,xAsSingle,_ yAsSingle)DimPaintNowAsBooleanPrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,_XAsSingle,YAsSingle)PaintNow=True '啟動繪圖EndSub

PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)PaintNow=False '禁止繪圖EndSub例如,下面演示了一個(gè)簡單的繪圖應(yīng)用程序。當(dāng)任意鼠標(biāo)按鈕按下并拖動時(shí),MouseDown事件過程和一個(gè)相關(guān)的MouseMove事件過程協(xié)同工作以啟動繪圖。MouseUp事件過程禁止繪圖。PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,_XAsSingle,YAsSingle)IfPaintNowThenPSet(X,Y) '畫一個(gè)點(diǎn)EndIfEndSubPrivateSubForm_Load()DrawWidth=10 '使用更寬的刷子ForeColor=RGB(0,0,255) '設(shè)置繪圖顏色EndSub9)Load(裝入)事件與Unload(卸載)事件當(dāng)應(yīng)用程序加載窗體時(shí)將自動觸發(fā)Load事件;當(dāng)從內(nèi)存中清除一個(gè)窗體(關(guān)閉窗體或執(zhí)行窗體的UnLoad方法)時(shí)將觸發(fā)Unload事件。例如,下面給出了一個(gè)關(guān)閉窗體時(shí)彈出詢問對話框(是否保存數(shù)據(jù))的例子。PrivateSubForm_Unload(CancelAsInteger)DimMsg,Response '聲明變量Msg="SaveDatabeforeclosing?“ '顯示一個(gè)帶幫助按鈕及“是”“否”按鈕的詢問對話框Response=MsgBox(Msg,vbQuestion+vbYesNoCancel,"SaveDialog")SelectCaseResponseCasevbCancel '不允許關(guān)閉 Cancel=-1 Msg="取消操作!"CasevbYes '這里輸入保護(hù)數(shù)據(jù)的代碼。Msg="數(shù)據(jù)已保存!"'CasevbNo Msg="數(shù)據(jù)未保存!"EndSelectMsgBoxMsg,vbOKOnly,"確認(rèn)" '顯示信息EndSub1)Hide(隱藏)方法與Show(顯示)方法這兩個(gè)方法分別用于隱藏和顯示窗體。如下例所示:該方法用于使窗體獲得焦點(diǎn)。例如:2)SetFocus(設(shè)置焦點(diǎn))方法VB的常用窗體方法Form1.Hide '隱藏窗體Form1.Show '顯示窗體Form1.SetFocus '使窗體獲得焦點(diǎn)調(diào)用SetFocus方法以后,任何的用戶輸入將指向指定的窗體。此外,如果窗體的Enabled屬性設(shè)置為False,此時(shí)由于窗體被禁止,故SetFocus方法無效。3)Cls(清除)方法該方法用來清除在窗體中輸入的文本或繪制的圖形。例如:Form1.Cls ‘清除在窗體中輸入的文本或繪制的圖形4)Circle(畫圓)方法與Line(畫線)方法Circle方法用于在窗體中繪制圓、橢圓或弧,其過程定義如下:object.Circle(x,y),radius,[color,start,end,aspect](x,y):指定圓、橢圓或弧的中心坐標(biāo)。color:指定圓、橢圓或弧輪廓線的顏色。objec:窗體名稱,如Form1等。如果省略O(shè)bject,則對象為當(dāng)前獲得焦點(diǎn)的窗體。radius:指定圓、橢圓或弧的半徑。start和end:以弧度為單位指定弧的起點(diǎn)和終點(diǎn)位置,其范圍從-2π到2π。start的缺省值是0,end的缺省值為2π。過程定義中各參數(shù)的意義aspect:設(shè)置圓的縱橫尺寸比,缺省值為1.0,表示繪制正圓。例如,為窗體的Click事件編寫如下程序,則每次在窗體中單擊,都可繪制一組不同顏色的同心圓。SubForm_Click()DimCX,CY,Radius,Limit'聲明變量.ScaleMode=3 '以像素為單位。當(dāng)使用圖形方法或調(diào)整控件 '位置時(shí),該值指示對象坐標(biāo)的度量單位CX=ScaleWidth/2 '圓心的X坐標(biāo)。ScaleWidth為窗體的內(nèi)部寬度CY=ScaleHeight/2 '圓心的Y坐標(biāo)。ScaleHeight為窗體的內(nèi)部高度IfCX>CYThenLimit=CYElseLimit=CX 'Limit取CX與CY之中的較小值ForRadius=0ToLimit '執(zhí)行0到Limit次循環(huán),Radius每次加1 'Rnd函數(shù)用來產(chǎn)生0到1之間的隨機(jī)數(shù) Circle(CX,CY),Radius,RGB(Rnd*255,Rnd*255,Rnd*255)NextRadiusEndSub5)Line(畫線或繪制矩形)方法該方法用于在窗體中繪制直線或矩形,其過程定義如下:object.Line(x1,y1)-(x2,y2),[color],[B][F]01(x1,y1)-(x2,y2):指定直線或矩形的起點(diǎn)和終點(diǎn)坐標(biāo)。如果省略(x1,y1),則線起始坐標(biāo)由CurrentX和CurrentY確定。03B:利用對角坐標(biāo)繪制矩形。04F:如果使用了B選項(xiàng),則F選項(xiàng)規(guī)定矩形以矩形邊框的顏色填充。02color:設(shè)置直線或矩形輪廓線顏色。實(shí)例2-1使用鼠標(biāo)繪制線條在本例中,我們將編寫一個(gè)使用鼠標(biāo)在窗口中繪制線條的小程序,其效果如圖所示。本例主要用到了MouseDown(按下鼠標(biāo)左鍵)和MouseMove(移動鼠標(biāo))兩個(gè)事件,并用到了Line方法。使用鼠標(biāo)繪制線條步驟1新建一個(gè)“標(biāo)準(zhǔn)EXE”工程,在默認(rèn)的Form1窗體下方繪制一個(gè)命令按鈕,并將其Caption屬性設(shè)置為“清除窗口”。步驟2在工程資源管理器窗口中單擊上面的“查看代碼”

按鈕,打開代碼窗口。打開對象下拉列表,選擇“(通用)”,然后輸入以下語句:VB中可使用英文狀態(tài)下的單引號“'”為程序代碼添加注釋。上述代碼中,每行“'”后面的內(nèi)容即為注釋。注釋的作用是方便自己或他人理解程序,以便將來可以方便地進(jìn)行程序維護(hù)和修改。不過,注釋并不會影響程序的運(yùn)行結(jié)果。DimsngdrawwidthAsSingle'模塊級變量,保存線條寬度提示步驟3在對象下拉列表中選擇Command1,此時(shí)Click事件被自動選中。在Command1_Click()事件過程中輸入如下代碼:PrivateSubCommand1_Click() Form1.Cls '清除窗口EndSub步驟4在對象下拉列表中選擇Form,在事件過程列表中選擇ouseDown,然后在事件過程中輸入如下代碼:CurrentX和CurrentY屬性為窗體屬性,但這兩個(gè)屬性設(shè)計(jì)時(shí)不可用,故未出現(xiàn)在屬性窗口中窗體的屬性列表中。

CurrentX、CurrentY與DrawWidth屬性的嚴(yán)格用法應(yīng)為Form1.CurrentX、Form1.CurrentY和Form1.DrawWidth,但由于MouseDown事件過程為Form1的事件過程,故屬性前的對象名可以省略不寫。'按下鼠標(biāo)事件PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,_ XAsSingle,YAsSingle)IfButton=1Then '如果按下鼠標(biāo)左鍵CurrentX=X:CurrentY=Y '記錄鼠標(biāo)指針?biāo)谖恢茫瑢⑵渥鳛? '在窗口中繪圖時(shí)的起始坐標(biāo)sngdrawwidth=1 '設(shè)置初始線寬為1DrawWidth=sngdrawwidth '設(shè)置在窗口中繪制線條的寬度屬性 'DrawWidth(初始值為1)EndIfEndSub提示步驟5在事件過程列表中選擇MouseMove,然后在事件過程中輸入如下代碼:'移動鼠標(biāo)事件PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,_ XAsSingle,YAsSingle)DimlngdrawcolorAsLong '定義繪制線條時(shí)的顏色變量IfButton=1Then '如果按下鼠標(biāo)左鍵IfShift=1Then '如果同時(shí)按下Shift鍵lngdrawcolor=RGB(255,0,0) '設(shè)置顏色變量為紅色ElseIfShift=2Then '如果同時(shí)按下Ctrl鍵lngdrawcolor=vbGreen '設(shè)置顏色變量為綠色ElseIfShift=4Then '如果同時(shí)按下Alt鍵lngdrawcolor=&HFF0000 '設(shè)置顏色變量為藍(lán)色EndIfsngdrawwidth=sngdrawwidth+0.1 '加寬線條DrawWidth=sngdrawwidth '為DrawWidth屬性賦值Line-(X,Y),lngdrawcolor '畫線。起點(diǎn)坐標(biāo)為CurrentX, 'CurrentY,終點(diǎn)坐標(biāo)為鼠標(biāo)指針 '所在位置,線條顏色為lngdrawcolorEndIfEndSub值得說明的是,由于MouseMove事件在移動鼠標(biāo)指針的過程中連續(xù)產(chǎn)生,因此,隨著鼠標(biāo)指針的移動,線條被不斷加寬?!靶陆üこ獭睂υ捒虼藭r(shí)代碼窗口如圖所示:步驟6按住鼠標(biāo)左鍵并拖動,繪制線條。按住【Shift】鍵,按住鼠標(biāo)左鍵并拖動,繪制線條。按住【Shift】鍵,按住鼠標(biāo)左鍵并拖動,繪制線條。按住【Shift】鍵,按住鼠標(biāo)左鍵并拖動,繪制線條。單擊“清除窗口”按鈕,清除窗口中的內(nèi)容。步驟7單擊“標(biāo)準(zhǔn)”工具欄中的“保存工程”按鈕

,保存窗體和工程文件。單擊“標(biāo)準(zhǔn)”工具欄中的“啟動”按鈕

,執(zhí)行當(dāng)前的應(yīng)用程序。分別測試以下內(nèi)容:實(shí)例2-2編寫加法計(jì)算程序編寫加法計(jì)算程序,程序運(yùn)行初識界面如圖所示。(1)當(dāng)單擊“輸入”按鈕時(shí),系統(tǒng)出現(xiàn)輸入對話框要求輸入第一加數(shù),輸入并確定后,該數(shù)據(jù)顯示在第一個(gè)文本框中,并要求輸入第二加數(shù)。要求“加法計(jì)算程序”初始運(yùn)行界面(2)輸入第二加數(shù)并確定后,該數(shù)據(jù)顯示在第二個(gè)文本框中,此時(shí)“計(jì)算”按鈕可用而其他兩個(gè)按鈕不可用。(3)單擊“計(jì)算”按鈕時(shí),結(jié)果顯示在第三個(gè)文本框中,“輸入”按鈕和“退出”按鈕可用而“計(jì)算”按鈕不可用。(4)單擊“退出”按鈕時(shí),關(guān)閉當(dāng)前窗體,結(jié)束程序運(yùn)行。步驟1啟動VB6.0后,首先建立一個(gè)標(biāo)準(zhǔn)工程。步驟2適當(dāng)調(diào)整窗體大小,在窗體上畫出4個(gè)標(biāo)簽控件、3個(gè)文本框控件和3個(gè)按鈕控件,如圖所示。“加法計(jì)算程序”窗體設(shè)計(jì)效果步驟3按照表所示設(shè)置窗體的屬性。屬性名稱屬性值Caption加法計(jì)算程序BackColor淺灰色(&H00E0E0E0&)BorderSt

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論