




已閱讀5頁,還剩92頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章Visual Basic 的基礎(chǔ)知識1 Visual Basic的基礎(chǔ)知識一、 概念和術(shù)語1, 對象(Object)事物都可稱作對象,比如桌椅就是對象,在Visual Basic里對象主要分為兩類:Form和Control。Form:窗體或稱表單,其實指的就是window。Control:控件,指的是各種按鈕、標(biāo)簽等等。2, 屬性(Property)指的是對象的屬性,比如姓名、性別、民族、籍貫都是你這個對象的屬性。Caption、Left、Name是一個命令按鈕的屬性。3, 事件(Event)事件是發(fā)生在對象上的動作。比如敲桌子是一個事件,它是發(fā)生在桌子這個對象上的一個動作。比如Click、Dblclick或LostFocus是發(fā)生在文本框控件上的事件。然而事件的發(fā)生不是隨意的,某些事件僅發(fā)生在某些對象上而已,比如“逃避早操被抓住”可以發(fā)生在學(xué)生這個對象上,但它不會發(fā)生在老師這個對象上。4, 方法(Method)這是一個直譯,是一個較難理解的概念,它是對象本身內(nèi)含的函數(shù)或過程,它也是一個動作,但不稱作事件,在Visual Basic 里,方法和事件是這樣的:事件:Private Sub對象名_事件名 (事件內(nèi)容)End Sub方法:對象名方法名所以方法是一個簡單的不必知道細(xì)節(jié)的無法改變的事件,同樣,方法也不是隨意的,一些對象有一些特定的方法。如果以上概念你記不住,不要緊,實踐中你會明白一切,請繼續(xù)學(xué)習(xí)。二、 Visual Basic 的開發(fā)周期1, 想清楚你想做到什么;2, 拿起筆在紙上畫出你的用戶界面;3, 拿起鼠標(biāo)在屏幕上畫出你的用戶界面,確定對象的屬性;4, 告訴計算機(jī)你要做的事;5, 讓程序運行,看看能否工作;6, 如果不能工作,不必難過;7, 找出那個錯誤,重新開始。你應(yīng)該養(yǎng)成一些良好的習(xí)慣,這樣在你編大程序時不至于丟三落四,為一些本來可避免的錯誤反復(fù)做第六步和第七步。三、 Visual Basic的存儲和運行1, 編寫的程序和對象的屬性一塊兒存在frm文件里;2, 整個程序里包含著一個或許多frm文件,Visual Basic將所有frm文件名存入一個vbp文件里,若丟失了一個vbp文件,盡管frm文件仍在磁盤上,但程序?qū)⒉荒苓\行了;3, 如果你的程序已經(jīng)自以為成功了,你可以把它編譯成EXE文件,這樣做的好處是:(1) 在沒有Visual Basic 的環(huán)境下可以運行;(2) 速度提高;(3) 別人不知道你的編程方法,還以為你是個編程專家,對你的編程效率大加贊嘆。更商業(yè)化的做法是做一張安裝盤,Visual Basic 6.0在這方面也為你準(zhǔn)備了工具,我們以后會講到這個工具四、 Visual Basic的不同之處1, 建立用戶界面。對Visual Basic來講,用戶界面是由你直接在屏幕上畫出來的,所以Visual Basic的用戶界面看上去總是十分完美。2, 程序?qū)τ脩艚缑娣磻?yīng)。在Visual Basic里有許多事件等待你去填寫代碼,它自動也知道向機(jī)器解釋這個事件,僅此一點就已經(jīng)省去你的許多時間。3, 結(jié)構(gòu)化的語言。在Visual Basic里似乎沒有主程序一說,所有的代碼都在一個一個模塊里,所以所有的程序看起來都是不很長。五、 Visual Basic的不足之處Microsoft的C+程序員是不會開發(fā)出一樣?xùn)|西之后,讓自己失業(yè)的,大多數(shù)簡單好用的東西都有它的限制,Visual Basic也是一樣。1, C+和Pascal有更多的對計算機(jī)的控制,所以Windows是用C和匯編語言編的,UNIX也是用C語言編的,想用Visual Basic做一個操作系統(tǒng)是不可能的;2, C+和Pascal是一種速度更快的語言,所以如果速度在程序中很重要,則Visual Basic 難以勝任;3, Visual Basic不能在Macintosh、OS/2上運行,也不能在小型機(jī)或巨型機(jī)上運行。當(dāng)然,任何一門語言的精通都需要長時間的“玩?!?,然而現(xiàn)在,我們只須從玩Visual Basic開始。2 制作第一個Visual Basic程序一、 我們要做什么1, 我們要做的第一步是確立我們想做什么,我們想做的第一個自已的Visual Basic程序是讓一張幸福的小臉眨眼睛的程序。2, 繪制用戶界面,這是第二步。在開始菜單里選程序項,選擇Visual Basic 6.0組,選擇Visual Basic 6.0,進(jìn)入Visual Basic環(huán)境。下面是畫控件的方法:1, 單擊工具欄里想畫的控件(這個工具欄出現(xiàn)在Visual Basic界面的左邊);2, 在窗體里單擊并拖曳鼠標(biāo),畫出控件(打開Visual Basic時,會有一個名為Form1的空白窗體出現(xiàn))。二、 繪制用戶界面1, 單擊工具欄里的選項按鈕控件(OptionButton),單擊并拖曳鼠標(biāo),在Form1里,畫一個選項按鈕,使它看起來象圖示一樣;2, 再畫三個選項按鈕;3, 單擊工具欄里圖標(biāo)控件(Image),單擊并拖曳鼠標(biāo),在窗體里,畫一個圖標(biāo)輪廓;4, 再在旁邊畫四個圖標(biāo);5, 單擊工具欄里命令鈕控件(CommandButton),單擊并拖曳鼠標(biāo),在窗體里,畫一個按鈕;6, 從File菜單里選擇Save File項;7, 在Save對話框填上HellloVB,它的擴(kuò)展名是frm,單擊OK鈕;8, 從File菜單選擇Save Project項;9, 在對話框里填上HelloVB,它的擴(kuò)展名是vbp,單擊OK鈕?,F(xiàn)在,我們已完成了用戶界面的一部分設(shè)計設(shè)計,運行的時侯它看起來就是現(xiàn)在這個樣子的。三、 精確設(shè)置對象的屬性首先,我們不一定要設(shè)置對象的屬性,Visual Basic有對其對象屬性的缺省值,其次,盡管每個對象有數(shù)十個屬性,但我們往往只須改變其中的幾個值而已??梢栽谠O(shè)計階段改變對象屬性,也可以在運行階段改變對象屬性屬性。在這個程序里我們通過設(shè)計階段的改變屬性的方法和運行階段的改變屬性的方法來實行全部的功能。下面是設(shè)置屬性的方法:1, 選擇需要改變屬性的對象(用鼠標(biāo)在控件上單擊,這時在控件周圍出現(xiàn)八個小黑塊,表示你已選上了這個控件);2, 按F4打開屬性窗口;3, 選擇想要改變的屬性;4, 賦新值?,F(xiàn)在開始設(shè)置屬性。1, 選擇Form對象,按F4鍵,出現(xiàn)Property窗口;2, 選擇Caption屬性;3, 通過輸入“My First Visual Basic Application”來改變設(shè)置;4, 選擇Icon屬性,單擊屬性欄旁邊標(biāo)有“”的鍵,出現(xiàn)Load Icon對話框;5, 選擇VBiconsmiscface03.ico;6, 按OK鍵7, 選擇Option1選項按鈕,按F4鍵,出現(xiàn)Property窗口,選擇Name屬性,鍵入“optBoth”。其余的屬性設(shè)置是這樣的:控件屬性設(shè)置值Option1Caption睜眼睛Option2Caption眨左眼NameoptLeftOption3Caption眨右眼NameoptRightOption4Caption閉眼睛NameoptNoneCommand1Caption退出NamecmdExitImage1PictureFACE03.ICOStretchTrueNameimgShowImage2PictureFACE03.ICOVisibleFalseNameimgBothImage3PictureFACE05.ICOVisibleFalseNameimgLeftImage4PictureFACE04.ICOVisibleFalseNameimgRightImage5PictureFACE06.ICOVisibleFalseNameimgNone注:1, Image控件的Picture屬性的設(shè)置和Form1的Icon屬性的設(shè)置方法是一樣的(即在屬性欄旁邊找到標(biāo)有“”的按鈕,并按它。);2, face04,face05,face06圖標(biāo)并不在vbicons子目錄下,那是自已做的。在Borland C+、Visual C+、Visual FoxPro、Delphi等編程工具里都有制作圖標(biāo)的工具,可以用來制作自已的圖標(biāo);3, Visible屬性的真假決定對象在運行時是否可以被看見,F(xiàn)alse值表示對象不可見;4, Stretch屬性決定Image控件里的圖像能否被放大或縮小,當(dāng)然,放得很大的圖標(biāo)會顯得很粗糙?,F(xiàn)在我們終于完成了界面的設(shè)計,然而,這個程序還不能工作,因為計算機(jī)還達(dá)不到人的思維水平,它想象不出這個程序是做什么的,與此同時,你已想像出這個出這個程序執(zhí)行時的樣子了。四、編寫程序代碼最令人費解和最沒有成就感的必要工作,除了程序員、專家,大多數(shù)人對程序代碼都感到厭倦,幸好我們都不想成為世界級的程序員,所以目前的Visual Basic 程序代碼都不是很難。1, 選定一個對象,比如optLeft,然后按F7鍵或雙擊它,Visual Basic 顯示代碼窗口,Visual Basic 將顯示:Private Sub optLeft_Click()End SubPrivate表明這段代碼的應(yīng)用范圍,我們先不用深究這個詞的內(nèi)涵,Sub是一個開頭,是subprogram的簡寫,optLeft是對象名,_是一個下劃線,用來分開對象名和事件名,Click是指一個事件,Click就是“單擊”的意思,()是一對括號,通常里面是過程所使用的參數(shù),現(xiàn)在它是空的。這一行的意思是:“這是當(dāng)用戶單擊了optLeft選項按鈕時,程序應(yīng)該做的事?!盓nd Sub是這段代碼的結(jié)束標(biāo)志,意思是“這是這段代碼的最后一行?!蔽覀円谶@兩行間輸入指令。2, 現(xiàn)在輸入如下指令Private Sub optLeft_Click() imgShow.Picture = imgLeft.PictureEnd Sub3, 從代碼窗口頂部選擇Object列表框,選擇optRight控件,Visual Basic將顯示另一個空的Click過程。4,輸入如下代碼:Private Sub optRight_Click() imgShow.Picture = imgRight.PictureEnd Sub5, 用同樣方法再輸入三條指令:Private Sub optBoth_Click() imgShow.Picture = imgBoth.PictureEnd SubPrivate Sub cmdExit_Click() EndEnd SubPrivate Sub optNone_Click() imgShow.Picture = imgNone.PictureEnd Sub按下F5鍵運行這個程序,看它是否能運行。如果運行不正確,那么你要找出錯誤,再試一次。我們已經(jīng)成功地完成了這個例子,你已經(jīng)首次嘗試了Visual Basic的編程過程。是否十分簡單?其實編程序就象眨眼的小臉一樣有趣。第二章用戶界面設(shè)計1 用戶界面設(shè)計概述一,在設(shè)計前應(yīng)該了解的通常程序總是由用戶操縱的,所以用戶需要一個界面來進(jìn)行操縱。往往那些漂亮的簡單的界面更加吸引用戶,讓他們認(rèn)為程序有魔術(shù)般的力量,這樣他們才會使用這個程序。下面有四條設(shè)計界面的原則。1,了解用戶的習(xí)慣2,保持簡單3,允許用戶的錯誤,并給以提示4,讓用戶了解他在程序中的位置二,Visual Basic用戶界面設(shè)計基礎(chǔ)通過我們的第一個Visual Basic程序的設(shè)計,我們已經(jīng)知道界面的設(shè)計有兩步:先繪制控件,然后確定控件屬性。我們發(fā)現(xiàn)繪制控件并不是很難。在工具箱里單擊想畫的控件,在窗體里按下鼠標(biāo)并拖曳,然后松開鼠標(biāo)即可。雙擊工具箱里的控件,將在窗體中央出現(xiàn)那個控件。如果用這種方法的話,要注意雙擊第二個控件時把上一個控件移開,否則兩個控件會疊在一起,引起一些混淆。確定屬性的方法是先選中控件,然后按F4鍵進(jìn)入Properties窗口,接著在Properties窗口中找到要設(shè)置的屬性并進(jìn)行設(shè)置。下面解釋一些常用的屬性,這些屬性幾乎總是要被設(shè)置和改變。(1)Name屬性對象都有名字,盡管我們可以通過描繪一些特性來描繪對象,這樣做總是非常麻煩。計算機(jī)也是一樣,它把名字看成對象于對象之間的根本差異。由于計算機(jī)的這種頑固觀點,它拒絕在同一窗體里出現(xiàn)重名的情況(除非這是一個控件數(shù)組),它也拒絕超過40個字的名字。在簡單的程序里,給控件命名不很必要,我們完全可以使用控件Name屬性的缺省值。例如Text1。但在有幾十個控件的復(fù)雜窗體里,這種方法會使你花更多的時間去區(qū)分它們。所以,Visual Basic向你推薦由三個小寫字母的前綴和一個第一個字母為大寫的描述性單詞組成的名字。例如cmdMyButton是一個命令按鈕(前綴是cmd)推薦的前綴是:對象前綴例子確認(rèn)框(Check Box)chkchkCareerChioce組合框(Combo Box)cbocboCrimesCommitted命令鈕(Command Button)cmdcmdExit數(shù)據(jù)庫控件(Data Control)datdatTopSecretInfo目錄列表框(Directory List Box)dirdirTree驅(qū)動器列表框(Drive List Box)drvdrvHardDisk文件列表框(File List Box)filfilDocuments窗體(Form)frmfrm1040Tax框架(Frame)frafraGroupButtons水平滾動條(Horizontal Scroll Bar)hsbhsbTemperature圖形(Image)imgimgPrettyDrawing標(biāo)簽(Label)lbllblFakeName線(Line)linlinBorder列表框(List Box)lstlstCandidates菜單(Menu)mnumnuHamAndEggs選項鈕(Option Button)optoptStation101圖形框(Picture Box)picpicPrettyPicture幾何圖形(Shape)shpshpUpOrShipOut正文框(Text Box)txttxtWarning垂直滾動條(Vertical Scroll Bar)vsbvsbMoneyRaised(2)Caption屬性這僅僅是一個裝飾性的屬性,它可以長達(dá)255字符,包括空格和標(biāo)點符號,比如一個叫cmdOk的命令鈕,它的Caption屬性就可以是“Ok”。編程序時也要考慮到使用鍵盤的用戶,在設(shè)置Caption屬性在需要加下劃線的字母前加上 “&” 符號,例如 “&File”,輸出的就是“File”,這樣就可以通過按ALT鍵和標(biāo)題上那個帶下劃線的字母來選取它了。你不必為此編任何代碼。(3)Top,Left屬性只有兩種情況需要在屬性窗口里設(shè)置這兩個屬性:第一種是用戶沒有鼠標(biāo),第二種是程序員需要十分精確地設(shè)定這兩個值。這兩個屬性決定對象的位置。當(dāng)你選中對象,單擊并拖曳它的時候,你便在修改這兩個值了。(4)Height,Width屬性這兩個屬性決定了對象的大小,當(dāng)你選中控件時,它周圍出現(xiàn)八個小黑方塊,你把鼠標(biāo)指向這些方塊,鼠標(biāo)指針將變成一個雙向的箭頭,這時按下鼠標(biāo)并拖曳它,即可改變控件的大小,也就改變了Height,Width屬性。同Top,Left屬性一樣,我們主要通過鼠標(biāo)的操作來設(shè)置Height,Width屬性。2 窗體和命令鈕介紹一、窗體窗體是Windows的基本組成部分,這也是為什么這個操作系統(tǒng)叫Windows的原因。它的主要屬性除上面介紹的以外,還包括:1,Appearance屬性這個屬性用來決定控件是否采用三維效果。2,BorderStyle屬性這個屬性決定了窗體的邊框形式,共有6種屬性值。改變窗體的BordrStyle屬性后,窗體在屏幕上沒有變化,它只在運行時才變?yōu)槟闼蟮臉幼印?,ControlBox屬性程序員用來決定采用不采用控制框的屬性,僅在程序運行時才有效。4,F(xiàn)ont屬性程序員可以改變該窗體上顯示信息的字體,它控制著直接在窗體上打印的文本顯示。5,Icon屬性這個屬性是用戶經(jīng)常要使用的一種屬性。當(dāng)用戶的應(yīng)用程序在工具條上最小化或在Windows桌面上變?yōu)橐粋€獨立應(yīng)用程序時,該屬性決定將采用何種圖標(biāo),窗體控制框里的圖標(biāo)也由它決定。為自己的窗體設(shè)置該屬性時,要控制住自己挑三揀四的沖動。6,Visible屬性該屬性決定窗體是否可見。錯誤地改變其值是很危險的,窗體會從眼前消失,這種莫名其妙的事情會使用戶驚惶失措,所以肩負(fù)重任的程序員一定要慎重喲!7,WindowState屬性指定窗體在運行時的三種狀態(tài):正常、最小化、最大化。二、窗體的主要事件1,Load事件這個事件發(fā)生在窗體被裝入內(nèi)存時,且發(fā)生在窗體出現(xiàn)在屏幕之前。窗體出現(xiàn)之前,Visual Basic會看一看Load事件里有沒有代碼,如果有,那么它先執(zhí)行這些代碼,再讓窗體出現(xiàn)在屏幕上。2,Click事件,Dblclick事件這兩個事件在單擊或雙擊窗體時發(fā)生。不過你單擊窗體里的控件時,窗體的Click事件并不會發(fā)生,Visual Basic會去看控件的Click事件里有沒有代碼。3,Activate (活動事件)與Deactivate(非活動事件)顯示多個窗體時,可以從一個窗體切換到另一個窗體。每次激活一個窗體時,發(fā)生Activate 事件,而前一個窗體發(fā)生Deactivate事件。三、窗體控制1, 裝入或卸出窗體要裝入或卸出窗體,用Load或Unload語句。Load語句的語法如下:Load formName 而UnLoad語句的語法是: UnLoad formNameFormName變量是要裝入或卸出的窗體名。 Load語句只是把窗體裝入內(nèi)存,并不顯示出 來,要顯示窗體可以使用窗體的Show方法。2,顯示或隱藏窗體要顯示窗體,用Show方法。若尚未裝入內(nèi)存則先裝入再顯示。它的語法如下: formName.show modeFormName變量是窗體名,可選變元mode為0(缺省值)時窗體為非模態(tài),為1時窗體為模態(tài)。模態(tài)窗體完全占有應(yīng)用程序控制權(quán),不允許切換到別的應(yīng)用程序,除非關(guān)閉!而非模態(tài)窗體則反之。同理,隱藏窗體用formName.hide。四、命令鈕命令鈕有兩類:一類是簡單的命令鈕,一類是圖形鈕。圖形鈕常常成組地出現(xiàn)在屏幕的頂端,成為一些程序炫耀自己貼近用戶的標(biāo)志。圖形鈕充分利用了圖形用戶界面的特征,而且比命令鈕小,但它的缺點是用戶必須知道圖形鈕是什么意思,而且沒有鼠標(biāo)的用戶恐怕用不了圖形鈕。命令鈕也有Appearance、Caption、Font、Left、Visible之類的屬性。命令鈕的最主要事件就是Click事件,它還有MouseDown和MouseUp等事件3 建立菜單一般Windows的菜單條包含F(xiàn)ile,Edit,Window和Help菜單標(biāo)題。其它的菜單,程序員應(yīng)將它們插在Edit和Window菜單之間。在Visual Basic里,為了創(chuàng)建菜單,必須打開菜單編輯窗口??梢园聪翪trl+E鍵,也可以從Tools菜單中選擇Menu Editor項,或者單擊Visual Basic主窗口的從左邊數(shù)第六個圖形鈕。一、給菜單命名菜單標(biāo)題和菜單命令也有Caption和Name屬性,你設(shè)置了這兩個屬性就等于創(chuàng)建了菜單。于控件一樣Caption是屏幕上可見的,而Name則是一個抽象名稱。別忘了在Caption里加入 “&” 以幫助沒有鼠標(biāo)的用戶。二、增加和刪除菜單在Menu Editor中部有三個命令鈕分別是Next,Insert,Delete。Insert可用來增加新的菜單。在這三個鍵下面的Caption列表框里選中菜單項(這時它的底色就變成深藍(lán)色),單擊Insert鍵,Visual Basic將上一個增亮菜單下推并增亮一空行,你就可以輸入新菜單名和標(biāo)題了。Delete鍵可用來刪掉菜單。你選中要刪掉的菜單,單擊Delete鍵就可以刪掉它了。三、移動菜單標(biāo)題有四種情況,向上移動,向下移動,向左縮排,向右縮排,這就是Menu Editor中間上下左右箭頭的功能。選中某一菜單標(biāo)題,安上下箭頭,則這個菜單將上下移動到你喜歡的位置上,這也決定了它在界面中的位置。如果你按左右箭頭,情況則有所不同。由于菜單是分級的,所以,如果它沒有縮排,則它是一個菜單標(biāo)題;如果它縮排一次,那么它將變成一個菜單命令;如果縮排兩次,那么它將成為一個子菜單命令。Visual Basic里你可以總共設(shè)計四層子菜單。四、設(shè)置分離條分離條是指在菜單中將命令分組的線。奇怪的是,Visual Basic將分離條也看成一個菜單項,它也需要Caption和Name屬性,而且它也有其它屬性,分離條與菜單項的區(qū)別是分離條的Caption屬性必須是連字號即減號。也就是,當(dāng)你設(shè)置了一個Caption屬性為 “-” 的菜單項時,實際上你就設(shè)置了一個分離條,分離條的名字可以是barFile1之類,以表明分離條的位置。五、菜單的各種簡單屬性在Menu Editor里有許多確認(rèn)框和一些正文框及一個下拉式的列表框,這些東西決定了菜單的各種屬性。1,Checked屬性這個屬性值設(shè)置為真,將在菜單命令左邊產(chǎn)生一個打勾的確認(rèn)標(biāo)志,你可以看看File Manager里的View菜單就可以了解什么是確認(rèn)標(biāo)志了。2,Enabled屬性各種各樣的用戶會產(chǎn)生千奇百怪的操作,在許多Edit菜單里都會有不同形式的讓菜單命令模糊的情況。Enabled屬性就是用來做這件事的。Enabled屬性為真,則菜單命令是清晰的,Enabled屬性為假,則菜單命令是模糊的,這時用戶就不能選中這個菜單項了。3,Visible屬性用戶看見一個模糊的菜單而不能選的時候,有時會非常生氣。所以,如果用戶看不見這個菜單命令時,他也就不會發(fā)無名之火了。如果把Visible屬性設(shè)為假,則菜單根本不會出現(xiàn)在屏幕上。這樣做比把Enabled屬性設(shè)為假顯得更加干脆!4,Index屬性可以生成菜單命令數(shù)組,用索引號區(qū)分開。例如向File菜單中添加一系列最近打開的文件名。添加菜單可用Load方法。以上屬性可以在運行時設(shè)置,形成動態(tài)的菜單的情況。例如:mnuUndo.Enabled = FalsemnuProperty.Visible = False你還可以改變Caption等屬性。mnuUndo.Caption = “Redo”在對窗體,命令鈕和菜單有所了解后,工具箱里的其它控件就更加容易理解了。下面這些控件的熟練運用,將使你做出漂亮的界面。六、生成彈出式菜單(或浮動菜單) 幾乎每個Windows應(yīng)用程序都提供彈出式菜單,用戶可以右鍵單擊窗體或控件取得這個菜單。彈出式菜單也屬于普通菜單,只是不固定在窗體上,而是可以在任何地方顯示。彈出式菜單用PopupMenu方法調(diào)用。假設(shè)我們已經(jīng)用Menu Editor生成了名為mnuedit的菜單,則可以在MouseUp事件加入如下代碼: If Button = 2 Then PopupMenu mnuedit 下面將用一個實例展示動態(tài)菜單和彈出式菜單。 左圖表單顯示了一個彈出式菜單,在表單的空白處右擊鼠標(biāo)就可得到。左圖表單顯示了一個動態(tài)菜單,單擊Add runtime option鈕一下就會使菜單Runtime Menu增加一項,而單擊Remove runtime option鈕一下就會使菜單Runtime Menu減少一項。其源代碼如下:Dim rtmenuPrivate Sub cmdadd_Click()rtmenu = rtmenu + 1If rtmenu = 1 Then mnuoption(0).Caption = Runtime OptionLoad mnuoption(rtmenu)mnuoption(rtmenu).Caption = option # & rtmenuEnd SubPrivate Sub cmdremove_Click()If rtmenu = 0 Then MsgBox menu is empty Exit SubEnd IfUnload mnuoption(rtmenu)rtmenu = rtmenu - 1End SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 Then PopupMenu mnueditEnd Sub4 框架,確認(rèn)框和選項鈕一、確認(rèn)框和選項鈕就好比多項選擇和單項選擇,在考試時選擇題總比簡答題要好做,因為你可以用瞎蒙的策略。用戶界面設(shè)計的保持簡單的原則使確認(rèn)框和選項鈕成為有用的框件。確認(rèn)框和選項鈕用于向程序輸入信息。確認(rèn)框選中時會在小方框里打一個鉤,菜單設(shè)計窗口里就有這種確認(rèn)框的例子。選項鈕選中時會在小圓圈里點一個點。它們的主要屬性除了Name,Caption等,還有:1,Value屬性決定它們是否被選中的屬性。2,Alignment屬性決定它們的對齊方式。二、有兩道選擇題或更多時,我們就必須對它們進(jìn)行分組。這種分組需要借助框架控件。分組的方法是:1, 在工具箱里單擊Frame控件;2, 在窗體里拖曳鼠標(biāo)畫出框架;3, 在工具箱里單擊確認(rèn)框或選項鈕控件;4, 在框架里畫確認(rèn)框或選項鈕;5, 把所需的確認(rèn)框或選項鈕都畫好。5 正文框和標(biāo)簽正文框通常用于向計算機(jī)輸入信息,而標(biāo)簽通常用于輸出信息。正文框是一個十分重要的控件,因為由確認(rèn)框和選項鈕向程序輸入的信息畢竟只有少數(shù)的幾條信息而已。標(biāo)簽和正文框的區(qū)別很小,標(biāo)簽可以看成是一個在運行時不能修改正文的正文框。因此標(biāo)簽主要用于輸出信息。標(biāo)簽是生活中不可缺少的部分,比如教室里的“團(tuán)結(jié),勤奮,嚴(yán)謹(jǐn),活潑”就是一個每天不得不面對的標(biāo)簽。1,BorderStyle屬性決定了正文框和標(biāo)簽的邊框形式。2,正文框的Text屬性和標(biāo)簽的Caption屬性這兩個屬性其實是一樣的,它決定了用戶在屏幕上看到的東西,只不過正文框的Text屬性在運行時可以直接在正文框里修改。3,Alignment屬性這個屬性決定正文或標(biāo)題的排列方式。4,正文框的Multiline屬性如果正文框里的字太多了,超過了正文框的寬度,那么計算機(jī)就在某個我們不知道的地方顯示這行字,所以我們要設(shè)置Multiline屬性為True,這樣正文框就有了字換行的能力。5,正文框的PasswordChar屬性如果用戶從事的是一種掌握大量金錢或機(jī)密的工作的話(此類用戶肯花大錢來買關(guān)于計算機(jī)的東西),那么他就需要對自己的工作遮遮掩掩,在Visual Basic里你可以作一個口令正文框來實現(xiàn)這種遮掩。方法是:(1)選中作為口令正文框的正文框。(它的周圍出現(xiàn)八個小方塊)(2)按F4鍵打開屬性窗口。(3)設(shè)置Multiline屬性為False。(4)設(shè)置PasswordChar為用于掩蓋的字符。(只能是一個字符,比如 * 號)第三步使口令正文框只有一行,因為Multiline屬性為True將使Password屬性失效。Visual Basic認(rèn)為口令不必太長,因為太長的口令更加容易忘記。6,正文框的Maxlength屬性為了防止一些古怪用戶輸入太多的廢話,程序員有限制正文框正文長度的權(quán)力,這就是Maxlength屬性。如果Maxlength屬性設(shè)置為零,那么正文框就只受計算機(jī)內(nèi)存的限制了。7,Label的AutoSize屬性和WordWrap屬性這兩個屬性在一起搭配使用總是讓人混淆,以至于Visual Basic附帶的示例程序里有一個程序里有這兩個屬性的例子,它的路徑通常是c:vbsamplescontrolscontrol.vbp。在Visual Basic里運行這個例子,選擇Options菜單的WordWrap and AutoSize。AutoSize屬性使標(biāo)簽自動地擴(kuò)大縮小以適應(yīng)標(biāo)簽的Caption屬性,但是它只會水平伸展。WordWrap屬性使標(biāo)簽具有字換行處理的能力。為了使標(biāo)簽具有垂直伸展和字換行處理,必須設(shè)置它的AutoSize屬性和WordWrap屬性同時為True。AutoSize屬性為False,WordWrap屬性為False時,若標(biāo)簽不夠高而Caption太長時,Caption將被切割掉。AutoSize屬性為False,WordWrap屬性為True時,情況同上。AutoSize屬性為True,WordWrap屬性為False時,表示可以水平伸展,但只顯示一行信息。Locked屬性程序員可以阻止用戶改變文本框的內(nèi)容,用戶只可以看文本而不能改變它。這是Visual Basic 4.0的新功能。6 圖形框(Picture Box)和圖象框(Image Box) Picture Box和Image Box是用來把圖形放入程序里的。Picture Box和Image Box可以顯示幾種不同格式的圖形。Bitmap文件(.BMP或.DIB)、Icon文件(.ICO或.CUR)、Metafile圖元文件(.WMF)、增強(qiáng)型圖元文件(.EMF)、JEPG(.JPG)及GIF(.GIF)文件。在Visual Basic里Microsoft大概送給了我們幾百個上述前三類文件,它們的路徑通常是:c:vbbitmaps、c:vbicons、c:vbmetafile。它們的主要屬性有:1,設(shè)置Picture Box和Image Box的Picture屬性(1)單擊Picture Box或Image Box。(2)按F4鍵打開屬性窗口。(3)單擊Picture屬性。(4)單擊設(shè)置框右邊的省略號,Visual Basic將顯示Load Picture對話框。(5)選擇用戶需要的文件,單擊Ok鍵。則Visual Basic將圖形裝入Picture Box或Image Box。如果想在程序運行期間裝入或刪除圖形,就需要用程序代碼來實現(xiàn)了。我們可以使用Load Picture函數(shù)。例:裝入圖形imgMyHand.Picture = LoadPicture ( “c:graphicshand.bmp” )刪除圖形imgMyHand.Picture = LoadPicture ( “ ” )2,Picture Box和Image Box的BorderStyle屬性如同正文框和標(biāo)簽一樣,你可以設(shè)計Picture Box和Image Box的邊框。3,Stretch屬性和AutoSize屬性Image Box只有Stretch屬性,而Picture Box只有AutoSize屬性。AutoSize屬性設(shè)為True,則Picture Box改變自己的大小來適應(yīng)其中的圖形。Stretch屬性設(shè)為True,則Image Box中的圖形將改變自己的大小來適應(yīng)外面的邊框。7 Line和Shape控件總有一些除了裝飾作用沒有別的功能的東西。如Line 和Shape控件。1,Line和Shape的BorderColor屬性一般來說邊界顏色是黑的,但你也可顯示你喜愛的顏色。在屬性窗口里單擊BorderColor屬性,再單擊省略號,Visual Basic將顯示一塊調(diào)色板,在調(diào)色板里選擇你喜愛的顏色。2,Line和Shape的BorderWidth屬性這個屬性決定線的粗細(xì)。3,Line和Shape的BorderStyle屬性這個屬性決定線的輪廓。4,Shape的FillStyle屬性在形狀中我們可能更加喜歡實心的樣子,這也可以做到。我們已經(jīng)了解了窗體,菜單,及十種不同的控件,這正是Windows的基本元素,再加上它們的各種屬性,就可以畫出各式各樣的用戶界面了!6&7總結(jié):Image、Shape 和 Line 控件有時被稱作輕量圖形控件。它們需要較少的系統(tǒng)資源,因此比 PictureBox 控件顯示得快并且包含 PictureBox 中可用的屬性、方法和事件的子集。每一個控件都適用于一個特定的目的。1、其它控件的容器: PictureBox 2、Printing 或 graphics 方法: PictureBox 3、顯示圖片 Image 或 PictureBox 4、控件顯示簡單圖形元素:Shape 或 Line 控件第三章編程的基礎(chǔ)在我們設(shè)計完用戶界面后,我們就將開始了編寫指令代碼的過程。這是一個相對枯燥但卻是必須的過程。1 Visual Basic編程概述一、事件驅(qū)動應(yīng)用程序簡單地說就是當(dāng)事件發(fā)生時程序才工作,否則程序?qū)⒌却录陌l(fā)生。在事件驅(qū)動程序中,用戶的操作或系統(tǒng)事件執(zhí)行一個事件過程,這樣,程序執(zhí)行的順序就由哪一個事件的發(fā)生決定,由用戶的操作決定。就是用戶管理,代碼響應(yīng)。二、事件過程用戶界面對事件響應(yīng)的三個部分是:1, 窗體2, 控件3, 菜單編寫程序代碼的通常過程是:1,確定哪一個對象(窗體,控件或菜單)做出反應(yīng)單擊此對象選中它;2,打開代碼窗口簡單的方法是按False7鍵或者雙擊對象;3, 找到響應(yīng)的事件;代碼窗口的Object列表框可以選擇對象,旁邊的Proc列表框可以選擇對象的事件。如果事件已經(jīng)有了代碼的話,那么在Proc列表框里這個事件名用黑體顯示??盏氖录a都由兩行組成,如:Private Sub Form_Load()|End Sub4,編寫程序代碼。三、變量程序總是要做三件事:1,得到數(shù)據(jù);2,處理數(shù)據(jù);3,輸出數(shù)據(jù)。在程序運行時,這些數(shù)據(jù)被儲存在變量里,變量可理解為計算機(jī)內(nèi)存條上的一個微觀的東西。一旦關(guān)機(jī),變量就消失了。變量在Visual Basic里有兩種類型:1,程序員建立的變量;2,對象的屬性往往也看成變量。變量必須滿足:1,字母開頭;2,不超過40個字;3,只包括字母,數(shù)字,下劃線;4,不是保留字。創(chuàng)建變量的方法:1,用Dim語句說明它;2,可以省略聲明語句而用變量聲明字符生成確定類型的變量。在程序執(zhí)行時若要生成變量并指定數(shù)據(jù)類型,可加入下表所示的變量聲明字符后綴。符號數(shù)據(jù)類型舉例$StringA$, message Text$%IntegerCounter%, var%&LongPopulation&,colorValue%!SingleDistance!#DoubleExactDistance#3,把一個值賦給一個名稱,Visual Basic就把這個名稱看成變量。Dim語句的語法是:Dim VariableName As Type例如:Dim MyNameAs Type部分可以省略,它涉及到我們將要講的關(guān)于數(shù)據(jù)類型的問題。Dim語句的作用是聲明變量并分配存儲空間。賦值語句的語法是:VariableName = Value 或 VariableName1 VariableName2與數(shù)學(xué)中的等號意義不同,這里等號只表示把后者的值賦給前者,所以,A A 1在Visual Basic里是合法的。例如:cmdExit.Caption = “Exit”(這是一個改變對象屬性的例子)四、數(shù)據(jù)類型變量可以存放數(shù)字或字符串等東西,但是MyName變量并不需要存放數(shù)字,所以你可以限制存放的數(shù)據(jù)類型。你可以規(guī)定MyName只能字符串。Visual Basic提供了七種數(shù)據(jù)類型:1, 整型(Integer)2字節(jié)整數(shù),標(biāo)識符(同上面的變量聲明字符)為百分號(%),范圍從-32768到32767,運算很快。2, 長整型(Long)4字節(jié)整數(shù),標(biāo)識符為&,范圍從-2147483648到2147483647,運算很快。3, 單精度型(Single)4字節(jié)浮點數(shù),標(biāo)識符為!,范圍可達(dá)38位數(shù)字,前7位可靠,運算比整型和長整型慢。4, 雙精度型(Double)8字節(jié)浮點數(shù),標(biāo)識符為#,范圍可達(dá)300多位,但是可靠的只有前16位數(shù)字。5, 字符串型(String)標(biāo)識符為$,在32位版本的Visual Basic 4.0中,字符串可容納高達(dá)200兆字節(jié)的內(nèi)容。6, 貨幣型(Currency)8字節(jié)定點數(shù),標(biāo)識符為,小數(shù)點右邊4位,左邊15位。7, 日期型(Date)用于存放日期,范圍從#January 1,100#到#December 31,9999#,日期的格式取決于系統(tǒng)的設(shè)定,賦值方法是:New = #January 1,2000# 。8, 字節(jié)型(Byte)Visual Basic 4.0新增加的數(shù)據(jù)類型,用于存放0到255的整數(shù)。9, 布爾型(Boolean)只有True或False兩個值。10, 變體型(Variant)如果你不告訴Visual Basic你的變量是什么類型,Visual Basic就自動把它看成變體型。變體型的意思就是它沒有類型,或者是任何類型。如果聲明了Variant變量而未賦值,則其值為Empty。例如:Dim MyName As String事實上,語句Dim MyName只是將MyName變量聲明為變體類型罷了,因為變體類型是Visual Basic的缺省類型。但是,我們使用數(shù)據(jù)類型的原因是什么呢?1,使用最小的數(shù)據(jù)類型可節(jié)省內(nèi)存;2,程序員可以容易地找出每一變量所存放的數(shù)據(jù)類型;3,可以防止數(shù)據(jù)類型存放錯誤引起的錯誤。例如:Private Sub Form_Load()Dim MyName As StringMyName = “DongShan”End Sub變換變量類型有時需要將一種變量類型變成另一種變量類型,下表列出了進(jìn)行變量類型轉(zhuǎn)換的函數(shù):函數(shù)說明函數(shù)說明Cbool將變元變成布爾值CLng將變元變成長整型值Cbyte將變元變成字節(jié)值CSng將變元變成單精度值CCur將變元變成貨幣型值CStr將變元變成字符串值CDate將變元變成日期值Cvar將變元變成變體值CDbl將變元變成雙精度值CVErr將變元變成錯誤值CInt將變元變成整型值例如要將如下的初始化變量:Dim A As Integer 變成雙精度值,可用下列函數(shù):B=CDbl(A) 用戶自定義的數(shù)據(jù)類型-記錄保存多個相同或不同類型數(shù)值的結(jié)構(gòu)稱為記錄(record)。在VISUAL BASIC 中定義記錄,用Type語句,其語法如下:Type varTypeVariable1 As varType Variable2 As varTypeVariablen As varTypeEnd Type例如定義一個名為CheckRecord的記錄:Type CheckRecordCheckNumber as IntegerCheckDate as DateCheckAmount as SingleEnd TypeCheckRecord結(jié)構(gòu)可以像普通變量類型一樣使用。要定義這個類型的變量,使用如下語句:Dim check1 As CheckRecord要對結(jié)構(gòu)的各個字段訪問,可使用如下語句:check1. CheckNumber=123check1. CheckDate=#08/14/1996#check1. CheckAmount=240.00強(qiáng)制的變量聲明Visual Basic并不要求變量聲明,但對于編寫大型應(yīng)用程序時,變量聲明的確很有好處。因此Visual Basic提供強(qiáng)制聲明的方法,只要在窗體或模塊的聲明部分加上一條語句:Option Explicit這個語句使編譯器檢查每個變量的聲明,如果要用的變量沒有聲明,則發(fā)出一個錯誤消息!數(shù)組單個變量只能存放單個實體,而數(shù)組可以存放一組相關(guān)的數(shù)據(jù)。像變量一樣,數(shù)組有名稱,存放在數(shù)組中的數(shù)值通過一個索引來訪問。數(shù)組的定義必須用Dim語句聲明,如下:Dim Names(9) As String 也可以不指定數(shù)據(jù)類型Names是保存了10個元素的數(shù)組,Names(0)是第一個元素,Names(9)是最后一個元素。數(shù)組元素的賦值如下:Na
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)科醫(yī)患溝通技巧
- 開顱鉆顱術(shù)后引流管的護(hù)理
- 營銷策略流程圖
- 圓錐曲線精美課件
- 風(fēng)險分散型草牧場托管養(yǎng)殖合同
- 市場營銷策劃與市場戰(zhàn)略制定專員勞動合同
- 知識產(chǎn)權(quán)評估與財務(wù)顧問服務(wù)合作協(xié)議
- 跨國公司車輛收費員勞務(wù)派遣協(xié)議書
- 商業(yè)大廈立體停車庫租賃合同
- 親子插畫故事書創(chuàng)作合同
- 企業(yè)安全生產(chǎn)費用提取和使用管理辦法專題培訓(xùn)考核試卷
- 當(dāng)兵言語測試試題及答案
- 混凝土攪拌站項目可行性研究報告
- 老年人慢性病管理流程
- 電商平臺如何利用社交媒體提高轉(zhuǎn)化率
- 壓力容器及安全附件培訓(xùn)
- 2025年中國大米行業(yè)數(shù)據(jù)報告(純數(shù)據(jù)版)
- R32與R290新冷媒培訓(xùn)
- 2025年廣東廣州市黃埔區(qū)人民政府永和街道辦事處招聘政府聘員7人高頻重點提升(共500題)附帶答案詳解
- 孕產(chǎn)期飲食調(diào)整與健康教育實踐案例分享
- 英文詞匯課程設(shè)計
評論
0/150
提交評論