VB60詳細(xì)講義(VB6實(shí)用教程,VB6從入門(mén)到精通)_第1頁(yè)
VB60詳細(xì)講義(VB6實(shí)用教程,VB6從入門(mén)到精通)_第2頁(yè)
VB60詳細(xì)講義(VB6實(shí)用教程,VB6從入門(mén)到精通)_第3頁(yè)
VB60詳細(xì)講義(VB6實(shí)用教程,VB6從入門(mén)到精通)_第4頁(yè)
VB60詳細(xì)講義(VB6實(shí)用教程,VB6從入門(mén)到精通)_第5頁(yè)
已閱讀5頁(yè),還剩190頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE第一章VisualBasic介紹第二章用戶(hù)界面設(shè)計(jì)第三章編程的基礎(chǔ)(含變量,常量,條件語(yǔ)句,循環(huán)語(yǔ)句,自定義變量,自定義過(guò)程,對(duì)象和類(lèi)等基礎(chǔ))第四章Windows95的新控件VisualBasic的輸入輸出第五章VisualBasic的鼠標(biāo)事件和繪圖第六章VisualBasic的數(shù)據(jù)庫(kù)、報(bào)表、預(yù)覽、打印第七章從文件中存取資料第八章發(fā)行應(yīng)用程序第九章使用WindowsAPI和用VisualBasic建立自己的屏幕保護(hù)程序第十章創(chuàng)建ActiveX控件第十一章ActiveX文檔第十二章用對(duì)象鏈接與嵌入(OLE)擴(kuò)展VisualBasic第十三章使用資源文件第十四章用VisualBasic建立ActiveXDLL第十五章用Winsock控件進(jìn)行Internet通信第十六章Web瀏覽控件第一章 VisualBasic介紹§2窗體和命令鈕介紹一、窗體窗體是Windows的基本組成部分,這也是為什么這個(gè)操作系統(tǒng)叫Windows的原因。它的主要屬性除上面介紹的以外,還包括:1,Appearance屬性這個(gè)屬性用來(lái)決定控件是否采用三維效果。2,BorderStyle屬性這個(gè)屬性決定了窗體的邊框形式,共有6種屬性值。改變窗體的BordrStyle屬性后,窗體在屏幕上沒(méi)有變化,它只在運(yùn)行時(shí)才變?yōu)槟闼蟮臉幼印?,ControlBox屬性程序員用來(lái)決定采用不采用控制框的屬性,僅在程序運(yùn)行時(shí)才有效。4,F(xiàn)ont屬性程序員可以改變?cè)摯绑w上顯示信息的字體,它控制著直接在窗體上打印的文本顯示。5,Icon屬性這個(gè)屬性是用戶(hù)經(jīng)常要使用的一種屬性。當(dāng)用戶(hù)的應(yīng)用程序在工具條上最小化或在Windows桌面上變?yōu)橐粋€(gè)獨(dú)立應(yīng)用程序時(shí),該屬性決定將采用何種圖標(biāo),窗體控制框里的圖標(biāo)也由它決定。為自己的窗體設(shè)置該屬性時(shí),要控制住自己挑三揀四的沖動(dòng)。6,Visible屬性該屬性決定窗體是否可見(jiàn)。錯(cuò)誤地改變其值是很危險(xiǎn)的,窗體會(huì)從眼前消失,這種莫名其妙的事情會(huì)使用戶(hù)驚惶失措,所以肩負(fù)重任的程序員一定要慎重喲!7,WindowState屬性指定窗體在運(yùn)行時(shí)的三種狀態(tài):正常、最小化、最大化。二、窗體的主要事件1,Load事件這個(gè)事件發(fā)生在窗體被裝入內(nèi)存時(shí),且發(fā)生在窗體出現(xiàn)在屏幕之前。窗體出現(xiàn)之前,VisualBasic會(huì)看一看Load事件里有沒(méi)有代碼,如果有,那么它先執(zhí)行這些代碼,再讓窗體出現(xiàn)在屏幕上。2,Click事件,Dblclick事件這兩個(gè)事件在單擊或雙擊窗體時(shí)發(fā)生。不過(guò)你單擊窗體里的控件時(shí),窗體的Click事件并不會(huì)發(fā)生,VisualBasic會(huì)去看控件的Click事件里有沒(méi)有代碼。3,Activate(活動(dòng)事件)與Deactivate(非活動(dòng)事件) 顯示多個(gè)窗體時(shí),可以從一個(gè)窗體切換到另一個(gè)窗體。每次激活一個(gè)窗體時(shí),發(fā)生Activate事件,而前一個(gè)窗體發(fā)生Deactivate事件。三、窗體控制裝入或卸出窗體要裝入或卸出窗體,用Load

或Unload語(yǔ)句。Load語(yǔ)句的語(yǔ)法如下:LoadformName而UnLoad語(yǔ)句的語(yǔ)法是:UnLoadformNameFormName變量是要裝入或卸出的窗體名。Load語(yǔ)句只是把窗體裝入內(nèi)存,并不顯示出來(lái),要顯示窗體可以使用窗體的Show方法。2,顯示或隱藏窗體要顯示窗體,用Show方法。若尚未裝入內(nèi)存則先裝入再顯示。它的語(yǔ)法如下:formName.showmodeFormName變量是窗體名,可選變?cè)猰ode為0(缺省值)時(shí)窗體為非模態(tài),為1時(shí)窗體為模態(tài)。模態(tài)窗體完全占有應(yīng)用程序控制權(quán),不允許切換到別的應(yīng)用程序,除非關(guān)閉!而非模態(tài)窗體則反之。同理,隱藏窗體用formName.hide。四、命令鈕命令鈕有兩類(lèi):一類(lèi)是簡(jiǎn)單的命令鈕,一類(lèi)是圖形鈕。圖形鈕常常成組地出現(xiàn)在屏幕的頂端,成為一些程序炫耀自己貼近用戶(hù)的標(biāo)志。圖形鈕充分利用了圖形用戶(hù)界面的特征,而且比命令鈕小,但它的缺點(diǎn)是用戶(hù)必須知道圖形鈕是什么意思,而且沒(méi)有鼠標(biāo)的用戶(hù)恐怕用不了圖形鈕。命令鈕也有Appearance、Caption、Font、Left、Visible之類(lèi)的屬性。命令鈕的最主要事件就是Click事件,它還有MouseDown和MouseUp等事件§3建立菜單一般Windows的菜單條包含F(xiàn)ile,Edit,Window和Help菜單標(biāo)題。其它的菜單,程序員應(yīng)將它們插在Edit和Window菜單之間。在VisualBasic里,為了創(chuàng)建菜單,必須打開(kāi)菜單編輯窗口??梢园聪翪trl+E鍵,也可以從Tools菜單中選擇MenuEditor項(xiàng),或者單擊VisualBasic主窗口的從左邊數(shù)第六個(gè)圖形鈕。一、給菜單命名菜單標(biāo)題和菜單命令也有Caption和Name屬性,你設(shè)置了這兩個(gè)屬性就等于創(chuàng)建了菜單。于控件一樣Caption是屏幕上可見(jiàn)的,而Name則是一個(gè)抽象名稱(chēng)。別忘了在Caption里加入“&”以幫助沒(méi)有鼠標(biāo)的用戶(hù)。二、增加和刪除菜單在MenuEditor中部有三個(gè)命令鈕分別是Next,Insert,Delete。Insert可用來(lái)增加新的菜單。在這三個(gè)鍵下面的Caption列表框里選中菜單項(xiàng)(這時(shí)它的底色就變成深藍(lán)色),單擊Insert鍵,VisualBasic將上一個(gè)增亮菜單下推并增亮一空行,你就可以輸入新菜單名和標(biāo)題了。Delete鍵可用來(lái)刪掉菜單。你選中要?jiǎng)h掉的菜單,單擊Delete鍵就可以刪掉它了。三、移動(dòng)菜單標(biāo)題有四種情況,向上移動(dòng),向下移動(dòng),向左縮排,向右縮排,這就是MenuEditor中間上下左右箭頭的功能。選中某一菜單標(biāo)題,安上下箭頭,則這個(gè)菜單將上下移動(dòng)到你喜歡的位置上,這也決定了它在界面中的位置。如果你按左右箭頭,情況則有所不同。由于菜單是分級(jí)的,所以,如果它沒(méi)有縮排,則它是一個(gè)菜單標(biāo)題;如果它縮排一次,那么它將變成一個(gè)菜單命令;如果縮排兩次,那么它將成為一個(gè)子菜單命令。VisualBasic里你可以總共設(shè)計(jì)四層子菜單。四、設(shè)置分離條分離條是指在菜單中將命令分組的線(xiàn)。奇怪的是,VisualBasic將分離條也看成一個(gè)菜單項(xiàng),它也需要Caption和Name屬性,而且它也有其它屬性,分離條與菜單項(xiàng)的區(qū)別是分離條的Caption屬性必須是連字號(hào)即減號(hào)。也就是,當(dāng)你設(shè)置了一個(gè)Caption屬性為“-”的菜單項(xiàng)時(shí),實(shí)際上你就設(shè)置了一個(gè)分離條,分離條的名字可以是barFile1之類(lèi),以表明分離條的位置。五、菜單的各種簡(jiǎn)單屬性在MenuEditor里有許多確認(rèn)框和一些正文框及一個(gè)下拉式的列表框,這些東西決定了菜單的各種屬性。1,Checked屬性這個(gè)屬性值設(shè)置為真,將在菜單命令左邊產(chǎn)生一個(gè)打勾的確認(rèn)標(biāo)志,你可以看看FileManager里的View菜單就可以了解什么是確認(rèn)標(biāo)志了。2,Enabled屬性各種各樣的用戶(hù)會(huì)產(chǎn)生千奇百怪的操作,在許多Edit菜單里都會(huì)有不同形式的讓菜單命令模糊的情況。Enabled屬性就是用來(lái)做這件事的。Enabled屬性為真,則菜單命令是清晰的,Enabled屬性為假,則菜單命令是模糊的,這時(shí)用戶(hù)就不能選中這個(gè)菜單項(xiàng)了。3,Visible屬性用戶(hù)看見(jiàn)一個(gè)模糊的菜單而不能選的時(shí)候,有時(shí)會(huì)非常生氣。所以,如果用戶(hù)看不見(jiàn)這個(gè)菜單命令時(shí),他也就不會(huì)發(fā)無(wú)名之火了。如果把Visible屬性設(shè)為假,則菜單根本不會(huì)出現(xiàn)在屏幕上。這樣做比把Enabled屬性設(shè)為假顯得更加干脆!4,Index屬性可以生成菜單命令數(shù)組,用索引號(hào)區(qū)分開(kāi)。例如向File菜單中添加一系列最近打開(kāi)的文件名。添加菜單可用Load方法。以上屬性可以在運(yùn)行時(shí)設(shè)置,形成動(dòng)態(tài)的菜單的情況。例如:mnuUndo.Enabled=FalsemnuProperty.Visible=False你還可以改變Caption等屬性。mnuUndo.Caption=“Redo”在對(duì)窗體,命令鈕和菜單有所了解后,工具箱里的其它控件就更加容易理解了。下面這些控件的熟練運(yùn)用,將使你做出漂亮的界面。六、生成彈出式菜單(或浮動(dòng)菜單)幾乎每個(gè)Windows應(yīng)用程序都提供彈出式菜單,用戶(hù)可以右鍵單擊窗體或控件取得這個(gè)菜單。彈出式菜單也屬于普通菜單,只是不固定在窗體上,而是可以在任何地方顯示。 彈出式菜單用PopupMenu方法調(diào)用。假設(shè)我們已經(jīng)用MenuEditor生成了名為mnuedit的菜單,則可以在MouseUp事件加入如下代碼: IfButton=2ThenPopupMenumnuedit下面將用一個(gè)實(shí)例展示動(dòng)態(tài)菜單和彈出式菜單。 左圖表單顯示了一個(gè)彈出式菜單,在表單的空白處右擊鼠標(biāo)就可得到。左圖表單顯示了一個(gè)動(dòng)態(tài)菜單,單擊Addruntimeoption鈕一下就會(huì)使菜單RuntimeMenu增加一項(xiàng),而單擊Removeruntimeoption鈕一下就會(huì)使菜單RuntimeMenu減少一項(xiàng)。其源代碼如下:DimrtmenuPrivateSubcmdadd_Click()rtmenu=rtmenu+1Ifrtmenu=1Thenmnuoption(0).Caption="RuntimeOption"Loadmnuoption(rtmenu)mnuoption(rtmenu).Caption="option#"&rtmenuEndSubPrivateSubcmdremove_Click()Ifrtmenu=0ThenMsgBox"menuisempty"ExitSubEndIfUnloadmnuoption(rtmenu)rtmenu=rtmenu-1EndSubPrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenumnueditEndSub§4框架,確認(rèn)框和選項(xiàng)鈕一、確認(rèn)框和選項(xiàng)鈕就好比多項(xiàng)選擇和單項(xiàng)選擇,在考試時(shí)選擇題總比簡(jiǎn)答題要好做,因?yàn)槟憧梢杂孟姑傻牟呗浴S脩?hù)界面設(shè)計(jì)的保持簡(jiǎn)單的原則使確認(rèn)框和選項(xiàng)鈕成為有用的框件。確認(rèn)框和選項(xiàng)鈕用于向程序輸入信息。確認(rèn)框選中時(shí)會(huì)在小方框里打一個(gè)鉤,菜單設(shè)計(jì)窗口里就有這種確認(rèn)框的例子。選項(xiàng)鈕選中時(shí)會(huì)在小圓圈里點(diǎn)一個(gè)點(diǎn)。它們的主要屬性除了Name,Caption等,還有:1,Value屬性決定它們是否被選中的屬性。2,Alignment屬性決定它們的對(duì)齊方式。二、有兩道選擇題或更多時(shí),我們就必須對(duì)它們進(jìn)行分組。這種分組需要借助框架控件。分組的方法是:在工具箱里單擊Frame控件;在窗體里拖曳鼠標(biāo)畫(huà)出框架;在工具箱里單擊確認(rèn)框或選項(xiàng)鈕控件;在框架里畫(huà)確認(rèn)框或選項(xiàng)鈕;把所需的確認(rèn)框或選項(xiàng)鈕都畫(huà)好。§5正文框和標(biāo)簽正文框通常用于向計(jì)算機(jī)輸入信息,而標(biāo)簽通常用于輸出信息。正文框是一個(gè)十分重要的控件,因?yàn)橛纱_認(rèn)框和選項(xiàng)鈕向程序輸入的信息畢竟只有少數(shù)的幾條信息而已。標(biāo)簽和正文框的區(qū)別很小,標(biāo)簽可以看成是一個(gè)在運(yùn)行時(shí)不能修改正文的正文框。因此標(biāo)簽主要用于輸出信息。標(biāo)簽是生活中不可缺少的部分,比如教室里的“團(tuán)結(jié),勤奮,嚴(yán)謹(jǐn),活潑”就是一個(gè)每天不得不面對(duì)的標(biāo)簽。1,BorderStyle屬性決定了正文框和標(biāo)簽的邊框形式。2,正文框的Text屬性和標(biāo)簽的Caption屬性這兩個(gè)屬性其實(shí)是一樣的,它決定了用戶(hù)在屏幕上看到的東西,只不過(guò)正文框的Text屬性在運(yùn)行時(shí)可以直接在正文框里修改。3,Alignment屬性這個(gè)屬性決定正文或標(biāo)題的排列方式。4,正文框的Multiline屬性如果正文框里的字太多了,超過(guò)了正文框的寬度,那么計(jì)算機(jī)就在某個(gè)我們不知道的地方顯示這行字,所以我們要設(shè)置Multiline屬性為T(mén)rue,這樣正文框就有了字換行的能力。5,正文框的PasswordChar屬性如果用戶(hù)從事的是一種掌握大量金錢(qián)或機(jī)密的工作的話(huà)(此類(lèi)用戶(hù)肯花大錢(qián)來(lái)買(mǎi)關(guān)于計(jì)算機(jī)的東西),那么他就需要對(duì)自己的工作遮遮掩掩,在VisualBasic里你可以作一個(gè)口令正文框來(lái)實(shí)現(xiàn)這種遮掩。方法是:(1)選中作為口令正文框的正文框。(它的周?chē)霈F(xiàn)八個(gè)小方塊)(2)按F4鍵打開(kāi)屬性窗口。(3)設(shè)置Multiline屬性為False。(4)設(shè)置PasswordChar為用于掩蓋的字符。(只能是一個(gè)字符,比如*號(hào))第三步使口令正文框只有一行,因?yàn)镸ultiline屬性為T(mén)rue將使Password屬性失效。VisualBasic認(rèn)為口令不必太長(zhǎng),因?yàn)樘L(zhǎng)的口令更加容易忘記。6,正文框的Maxlength屬性為了防止一些古怪用戶(hù)輸入太多的廢話(huà),程序員有限制正文框正文長(zhǎng)度的權(quán)力,這就是Maxlength屬性。如果Maxlength屬性設(shè)置為零,那么正文框就只受計(jì)算機(jī)內(nèi)存的限制了。7,Label的AutoSize屬性和WordWrap屬性這兩個(gè)屬性在一起搭配使用總是讓人混淆,以至于VisualBasic附帶的示例程序里有一個(gè)程序里有這兩個(gè)屬性的例子,它的路徑通常是c:\vb\samples\controls\control.vbp。在VisualBasic里運(yùn)行這個(gè)例子,選擇Options菜單的WordWrapandAutoSize。AutoSize屬性使標(biāo)簽自動(dòng)地?cái)U(kuò)大縮小以適應(yīng)標(biāo)簽的Caption屬性,但是它只會(huì)水平伸展。WordWrap屬性使標(biāo)簽具有字換行處理的能力。為了使標(biāo)簽具有垂直伸展和字換行處理,必須設(shè)置它的AutoSize屬性和WordWrap屬性同時(shí)為T(mén)rue。AutoSize屬性為False,WordWrap屬性為False時(shí),若標(biāo)簽不夠高而Caption太長(zhǎng)時(shí),Caption將被切割掉。AutoSize屬性為False,WordWrap屬性為T(mén)rue時(shí),情況同上。AutoSize屬性為T(mén)rue,WordWrap屬性為False時(shí),表示可以水平伸展,但只顯示一行信息。Locked屬性程序員可以阻止用戶(hù)改變文本框的內(nèi)容,用戶(hù)只可以看文本而不能改變它。這是VisualBasic4.0的新功能?!?圖形框(PictureBox)和圖象框(ImageBox)PictureBox和ImageBox是用來(lái)把圖形放入程序里的。PictureBox和ImageBox可以顯示幾種不同格式的圖形。Bitmap文件(.BMP或.DIB)、Icon文件(.ICO或.CUR)、Metafile圖元文件(.WMF)、增強(qiáng)型圖元文件(.EMF)、JEPG(.JPG)及GIF(.GIF)文件。在VisualBasic里Microsoft大概送給了我們幾百個(gè)上述前三類(lèi)文件,它們的路徑通常是:c:\vb\bitmaps、c:\vb\icons、c:\vb\metafile。它們的主要屬性有:1,設(shè)置PictureBox和ImageBox的Picture屬性(1)單擊PictureBox或ImageBox。(2)按F4鍵打開(kāi)屬性窗口。(3)單擊Picture屬性。(4)單擊設(shè)置框右邊的省略號(hào),VisualBasic將顯示LoadPicture對(duì)話(huà)框。(5)選擇用戶(hù)需要的文件,單擊Ok鍵。則VisualBasic將圖形裝入PictureBox或ImageBox。如果想在程序運(yùn)行期間裝入或刪除圖形,就需要用程序代碼來(lái)實(shí)現(xiàn)了。我們可以使用LoadPicture函數(shù)。例:裝入圖形imgMyHand.Picture=LoadPicture(“c:\graphics\hand.bmp”)刪除圖形imgMyHand.Picture=LoadPicture(“”)2,PictureBox和ImageBox的BorderStyle屬性如同正文框和標(biāo)簽一樣,你可以設(shè)計(jì)PictureBox和ImageBox的邊框。3,Stretch屬性和AutoSize屬性ImageBox只有Stretch屬性,而PictureBox只有AutoSize屬性。AutoSize屬性設(shè)為T(mén)rue,則PictureBox改變自己的大小來(lái)適應(yīng)其中的圖形。Stretch屬性設(shè)為T(mén)rue,則ImageBox中的圖形將改變自己的大小來(lái)適應(yīng)外面的邊框。§7Line和Shape控件總有一些除了裝飾作用沒(méi)有別的功能的東西。如Line和Shape控件。1,Line和Shape的BorderColor屬性一般來(lái)說(shuō)邊界顏色是黑的,但你也可顯示你喜愛(ài)的顏色。在屬性窗口里單擊BorderColor屬性,再單擊省略號(hào),VisualBasic將顯示一塊調(diào)色板,在調(diào)色板里選擇你喜愛(ài)的顏色。2,Line和Shape的BorderWidth屬性這個(gè)屬性決定線(xiàn)的粗細(xì)。3,Line和Shape的BorderStyle屬性這個(gè)屬性決定線(xiàn)的輪廓。4,Shape的FillStyle屬性在形狀中我們可能更加喜歡實(shí)心的樣子,這也可以做到。我們已經(jīng)了解了窗體,菜單,及十種不同的控件,這正是Windows的基本元素,再加上它們的各種屬性,就可以畫(huà)出各式各樣的用戶(hù)界面了!§6&§7總結(jié):Image、Shape和Line控件有時(shí)被稱(chēng)作輕量圖形控件。它們需要較少的系統(tǒng)資源,因此比PictureBox控件顯示得快并且包含PictureBox中可用的屬性、方法和事件的子集。每一個(gè)控件都適用于一個(gè)特定的目的。1、其它控件的容器:PictureBox2、Printing或graphics方法:PictureBox3、顯示圖片Image或PictureBox4、控件顯示簡(jiǎn)單圖形元素:Shape或Line控件第三章 編程的基礎(chǔ)在我們?cè)O(shè)計(jì)完用戶(hù)界面后,我們就將開(kāi)始了編寫(xiě)指令代碼的過(guò)程。這是一個(gè)相對(duì)枯燥但卻是必須的過(guò)程。§1VisualBasic編程概述一、事件驅(qū)動(dòng)應(yīng)用程序簡(jiǎn)單地說(shuō)就是當(dāng)事件發(fā)生時(shí)程序才工作,否則程序?qū)⒌却录陌l(fā)生。在事件驅(qū)動(dòng)程序中,用戶(hù)的操作或系統(tǒng)事件執(zhí)行一個(gè)事件過(guò)程,這樣,程序執(zhí)行的順序就由哪一個(gè)事件的發(fā)生決定,由用戶(hù)的操作決定。就是用戶(hù)管理,代碼響應(yīng)。二、事件過(guò)程用戶(hù)界面對(duì)事件響應(yīng)的三個(gè)部分是:窗體控件菜單編寫(xiě)程序代碼的通常過(guò)程是:1,確定哪一個(gè)對(duì)象(窗體,控件或菜單)做出反應(yīng)——單擊此對(duì)象選中它;2,打開(kāi)代碼窗口——簡(jiǎn)單的方法是按False7鍵或者雙擊對(duì)象;找到響應(yīng)的事件;代碼窗口的Object列表框可以選擇對(duì)象,旁邊的Proc列表框可以選擇對(duì)象的事件。如果事件已經(jīng)有了代碼的話(huà),那么在Proc列表框里這個(gè)事件名用黑體顯示??盏氖录a都由兩行組成,如:PrivateSubForm_Load()|EndSub4,編寫(xiě)程序代碼。三、變量程序總是要做三件事:1,得到數(shù)據(jù);2,處理數(shù)據(jù);3,輸出數(shù)據(jù)。在程序運(yùn)行時(shí),這些數(shù)據(jù)被儲(chǔ)存在變量里,變量可理解為計(jì)算機(jī)內(nèi)存條上的一個(gè)微觀的東西。一旦關(guān)機(jī),變量就消失了。變量在VisualBasic里有兩種類(lèi)型:1,程序員建立的變量;2,對(duì)象的屬性往往也看成變量。變量必須滿(mǎn)足:1,字母開(kāi)頭;2,不超過(guò)40個(gè)字;3,只包括字母,數(shù)字,下劃線(xiàn);4,不是保留字。創(chuàng)建變量的方法:1,用Dim語(yǔ)句說(shuō)明它;2,可以省略聲明語(yǔ)句而用變量聲明字符生成確定類(lèi)型的變量。在程序執(zhí)行時(shí)若要生成變量并指定數(shù)據(jù)類(lèi)型,可加入下表所示的變量聲明字符后綴。符號(hào)數(shù)據(jù)類(lèi)型舉例$StringA$,messageText$%IntegerCounter%,var%&LongPopulation&,colorValue%!SingleDistance!#DoubleExactDistance#3,把一個(gè)值賦給一個(gè)名稱(chēng),VisualBasic就把這個(gè)名稱(chēng)看成變量。Dim語(yǔ)句的語(yǔ)法是: DimVariableNameAsType例如: DimMyNameAsType部分可以省略,它涉及到我們將要講的關(guān)于數(shù)據(jù)類(lèi)型的問(wèn)題。Dim語(yǔ)句的作用是聲明變量并分配存儲(chǔ)空間。賦值語(yǔ)句的語(yǔ)法是:VariableName=Value或VariableName1=VariableName2與數(shù)學(xué)中的等號(hào)意義不同,這里等號(hào)只表示把后者的值賦給前者,所以,A=A+1在VisualBasic里是合法的。例如:cmdExit.Caption=“Exit” (這是一個(gè)改變對(duì)象屬性的例子)四、數(shù)據(jù)類(lèi)型變量可以存放數(shù)字或字符串等東西,但是MyName變量并不需要存放數(shù)字,所以你可以限制存放的數(shù)據(jù)類(lèi)型。你可以規(guī)定MyName只能字符串。VisualBasic提供了七種數(shù)據(jù)類(lèi)型:整型(Integer)2字節(jié)整數(shù),標(biāo)識(shí)符(同上面的變量聲明字符)為百分號(hào)(%),范圍從-32768到32767,運(yùn)算很快。長(zhǎng)整型(Long)4字節(jié)整數(shù),標(biāo)識(shí)符為&,范圍從-2147483648到2147483647,運(yùn)算很快。單精度型(Single)4字節(jié)浮點(diǎn)數(shù),標(biāo)識(shí)符為!,范圍可達(dá)38位數(shù)字,前7位可靠,運(yùn)算比整型和長(zhǎng)整型慢。雙精度型(Double)8字節(jié)浮點(diǎn)數(shù),標(biāo)識(shí)符為#,范圍可達(dá)300多位,但是可靠的只有前16位數(shù)字。字符串型(String)標(biāo)識(shí)符為$,在32位版本的VisualBasic4.0中,字符串可容納高達(dá)200兆字節(jié)的內(nèi)容。貨幣型(Currency)8字節(jié)定點(diǎn)數(shù),標(biāo)識(shí)符為@,小數(shù)點(diǎn)右邊4位,左邊15位。日期型(Date)用于存放日期,范圍從#January1,100#到#December31,9999#,日期的格式取決于系統(tǒng)的設(shè)定,賦值方法是:New=#January1,2000#。字節(jié)型(Byte)VisualBasic4.0新增加的數(shù)據(jù)類(lèi)型,用于存放0到255的整數(shù)。布爾型(Boolean)只有True或False兩個(gè)值。變體型(Variant)如果你不告訴VisualBasic你的變量是什么類(lèi)型,VisualBasic就自動(dòng)把它看成變體型。變體型的意思就是它沒(méi)有類(lèi)型,或者是任何類(lèi)型。如果聲明了Variant變量而未賦值,則其值為Empty。例如:DimMyNameAsString事實(shí)上,語(yǔ)句DimMyName只是將MyName變量聲明為變體類(lèi)型罷了,因?yàn)樽凅w類(lèi)型是VisualBasic的缺省類(lèi)型。但是,我們使用數(shù)據(jù)類(lèi)型的原因是什么呢?1,使用最小的數(shù)據(jù)類(lèi)型可節(jié)省內(nèi)存;2,程序員可以容易地找出每一變量所存放的數(shù)據(jù)類(lèi)型;3,可以防止數(shù)據(jù)類(lèi)型存放錯(cuò)誤引起的錯(cuò)誤。例如:PrivateSubForm_Load()DimMyNameAsStringMyName=“DongShan”EndSub變換變量類(lèi)型有時(shí)需要將一種變量類(lèi)型變成另一種變量類(lèi)型,下表列出了進(jìn)行變量類(lèi)型轉(zhuǎn)換的函數(shù):函數(shù)說(shuō)明函數(shù)說(shuō)明Cbool將變?cè)兂刹紶栔礐Lng將變?cè)兂砷L(zhǎng)整型值Cbyte將變?cè)兂勺止?jié)值CSng將變?cè)兂蓡尉戎礐Cur將變?cè)兂韶泿判椭礐Str將變?cè)兂勺址礐Date將變?cè)兂扇掌谥礐var將變?cè)兂勺凅w值CDbl將變?cè)兂呻p精度值CVErr將變?cè)兂慑e(cuò)誤值CInt將變?cè)兂烧椭礦al:將變量轉(zhuǎn)成數(shù)值型,從左至右轉(zhuǎn),直到遇到第一個(gè)非數(shù)字為止。Str:將變量轉(zhuǎn)成字符型,會(huì)在最前保留一符號(hào)位,正號(hào)時(shí)前為空格。Format:將按格式返回字符。StrConv:轉(zhuǎn)換字符編碼例如要將如下的初始化變量: DimAAsInteger變成雙精度值,可用下列函數(shù): B=CDbl(A)用戶(hù)自定義的數(shù)據(jù)類(lèi)型記錄 保存多個(gè)相同或不同類(lèi)型數(shù)值的結(jié)構(gòu)稱(chēng)為記錄(record)。 在VISUALBASIC中定義記錄,用Type語(yǔ)句,其語(yǔ)法如下: TypevarType Variable1AsvarType Variable2AsvarType … VariablenAsvarType EndType 例如定義一個(gè)名為CheckRecord的記錄: TypeCheckRecord CheckNumberasInteger CheckDateasDate CheckAmountasSingle EndType CheckRecord結(jié)構(gòu)可以像普通變量類(lèi)型一樣使用。要定義這個(gè)類(lèi)型的變量,使用如下語(yǔ)句: Dimcheck1AsCheckRecord 要對(duì)結(jié)構(gòu)的各個(gè)字段訪(fǎng)問(wèn), 可使用如下語(yǔ)句: check1.CheckNumber=123 check1.CheckDate=#08/14/1996# check1.CheckAmount=240.00 強(qiáng)制的變量聲明 VisualBasic并不要求變量聲明,但對(duì)于編寫(xiě)大型應(yīng)用程序時(shí),變量聲明的確很有好處。 因此VisualBasic提供強(qiáng)制聲明的方法,只要在窗體或模塊的聲明部分加上一條語(yǔ)句: OptionExplicit 這個(gè)語(yǔ)句使編譯器檢查每個(gè)變量的聲明,如果要用的變量沒(méi)有聲明,則發(fā)出一個(gè)錯(cuò)誤消息!數(shù)組 單個(gè)變量只能存放單個(gè)實(shí)體,而數(shù)組可以存放一組相關(guān)的數(shù)據(jù)。像變量一樣,數(shù)組有名稱(chēng),存放在數(shù)組中的數(shù)值通過(guò)一個(gè)索引來(lái)訪(fǎng)問(wèn)。 數(shù)組的定義必須用Dim語(yǔ)句聲明,如下: DimNames(9)AsString'也可以不指定數(shù)據(jù)類(lèi)型 Names是保存了10個(gè)元素的數(shù)組,Names(0)是第一個(gè)元素,Names(9)是最后一個(gè)元素。數(shù)組元素的賦值如下: Names(0)="John" Names(1)="Tom" … Names(9)="Xionghui" 數(shù)組的第一個(gè)元素的索引可以不是0,可以在Dim語(yǔ)句中指定下限: DimNames(1To16) DimNames(5To16)動(dòng)態(tài)數(shù)組有時(shí)可能不知道需要多大的數(shù)組,這時(shí)可以生成動(dòng)態(tài)數(shù)組,其長(zhǎng)度可以在運(yùn)行程序時(shí)改變。定義動(dòng)態(tài)數(shù)組,和平常一樣用Dim語(yǔ)句(或Private和Public),但不要指定長(zhǎng)度(或維數(shù)): DimDynArray() 后面等能確定維數(shù)的時(shí)候,再用ReDim語(yǔ)句重新確定實(shí)際長(zhǎng)度(或維數(shù)): ReDimDynArray(UserCount) ReDim語(yǔ)句只能出現(xiàn)在過(guò)程之中,它是可執(zhí)行語(yǔ)句。 但每次執(zhí)行ReDim語(yǔ)句,數(shù)組中原先存放的所有當(dāng)前值會(huì)消失。但有時(shí)可能想改變數(shù)組的長(zhǎng)度,而不損失原有的數(shù)據(jù),幸好VisualBasic提供了Preserve關(guān)鍵字,它就能作到!例如下面語(yǔ)句將數(shù)組加大一個(gè)元素而不改變?cè)袛?shù)據(jù): ReDimPreserveDynArray(Ubound(DynArray)+1)由于ubound()函數(shù)只能返回靜態(tài)數(shù)組或已經(jīng)重定義上限的數(shù)組上標(biāo),否則將出錯(cuò)。所以我們常使用:Dimarr()…Redimarr(0)Redimpreservearr(ubound(arr)+1)這樣ubound()取得的上標(biāo)即數(shù)組成員數(shù),實(shí)際上是將arr(0)閑置,將有效的數(shù)組數(shù)據(jù)寫(xiě)入arr(1)之后的成員中。清除數(shù)組Erasearraylist‘參數(shù)為數(shù)組列表,格式為array1,array2…,該語(yǔ)句清空并釋放數(shù)組,一般用于動(dòng)態(tài)數(shù)組。五、變量的使用范圍VisualBasic的變量有三種使用范圍。1,局部變量;2,模塊級(jí)變量,也可以叫做窗體級(jí)變量,因?yàn)榇绑w和模塊是同級(jí)的;3,全局變量。局部變量只存在于說(shuō)明它的過(guò)程里,為說(shuō)明一個(gè)局部變量,應(yīng)在一個(gè)事件過(guò)程中說(shuō)明。模塊級(jí)變量可存在于這個(gè)窗體或模塊中,可以被所有窗體內(nèi)的事件過(guò)程所引用和改變,說(shuō)明模塊級(jí)變量的方法是:1,按F7鍵打開(kāi)代碼窗口;2,在Object列表框中選擇(general);3,在Proc列表框里選擇(declarations);4,用Dim語(yǔ)句說(shuō)明。全局變量從程序開(kāi)始時(shí)存在至程序結(jié)束,不過(guò)全局變量的錯(cuò)誤也許會(huì)導(dǎo)致致命的錯(cuò)誤,你不得不讀遍程序來(lái)尋找到底在說(shuō)明地方改變了全局變量。創(chuàng)建全局變量的方法是:1,從Insert菜單里選Module項(xiàng),這個(gè)命令為一個(gè)BAS模塊文件顯示代碼窗口;2,在Object列表框中選擇(general);3,在Proc列表框中選擇(declarations);4,用Public語(yǔ)句說(shuō)明全局變量。六、算術(shù),邏輯,比較運(yùn)算符1,算術(shù)運(yùn)算盡管一臺(tái)上萬(wàn)元的計(jì)算機(jī)看來(lái)很高科技,但它在算術(shù)運(yùn)算方面并不比一個(gè)幾十元的計(jì)算器強(qiáng)多少。運(yùn)算符運(yùn)算運(yùn)算符運(yùn)算+加(也是字符串拼接)\整數(shù)除-減(也是取負(fù)值)Mod取余數(shù)*乘^乘方/浮點(diǎn)數(shù)除&字符串拼接2,邏輯運(yùn)算邏輯運(yùn)算是對(duì)True和False進(jìn)行操作的運(yùn)算。VisualBasic將True的值看成-1,將False的值看成0。運(yùn)算符使用意義And變量1And變量2兩個(gè)量均為T(mén)rue,才返回TrueOr變量1Or變量2只要有一個(gè)量為T(mén)rue,返回值就為T(mén)rueXor變量1Xor變量2兩個(gè)量一個(gè)為T(mén)rue,一個(gè)為False才返回TrueNot變量1Not變量2簡(jiǎn)單地把True變?yōu)镕alse,把False變?yōu)門(mén)rue3,比較運(yùn)算比較運(yùn)算是比較兩個(gè)數(shù)或字符串的大小。運(yùn)算符意義運(yùn)算符意義<小于>=大于等于<=小于等于=等于>大于<>不等于說(shuō)明:變體型變量必須使用VarType(Var)判斷其是否為空,如返回1則為空。有時(shí)候,復(fù)雜的運(yùn)算會(huì)把我們搞暈,良好的習(xí)慣是加括號(hào)。如:x=(5*(8+9))^2,則計(jì)算機(jī)先處理(8+9),再處理(5*(8+9)),最后才是乘方。再如:x=(5*6)/2,這個(gè)括號(hào)加得似乎沒(méi)什么意義,但它使我們清晰地知道是從哪兒開(kāi)始運(yùn)算的。七、字符串操作有時(shí)程序需要對(duì)字符串進(jìn)行操作,比如從一個(gè)文件的完整路徑名中找出文件的名稱(chēng)。下面介紹幾個(gè)常用的函數(shù)。1,Len函數(shù)返回字符串的長(zhǎng)度。如Length=Len(“string”),則Length=6。2,LCase函數(shù),UCase函數(shù)LCase函數(shù)把字符串變?yōu)樾?xiě)字母。UCase函數(shù)把字符串變?yōu)榇髮?xiě)字母。如:x=LCase(“DONGSHAN”)x=UCase(“visualBasic”)3,Left函數(shù),Right函數(shù)語(yǔ)法是:Left(VariableName,N)Right(VariableName,N)Left函數(shù)從字符串的左邊提出N個(gè)字符。Right函數(shù)從字符串的右邊提出N個(gè)字符。4,Mid函數(shù)語(yǔ)法是:x=Mid(VariableName,n,m)Mid函數(shù)從VariableName字符串的第n個(gè)字符開(kāi)始取出m個(gè)字符。5,Instr函數(shù)語(yǔ)法是:Instr(VariableName1,VariableName2)Instr函數(shù)從VariableName1里找出VariableName2的位置。如:x=Instr(“ABCD”,”CD”),此時(shí)x=3。如果計(jì)算機(jī)沒(méi)找到要找的字符串,則這個(gè)函數(shù)返回0。6,LTrim函數(shù),RTrim函數(shù),Trim函數(shù)LTrim函數(shù)將去掉字符串前的空格。RTrim函數(shù)將去掉字符串后的空格。Trim函數(shù)將去掉字符串前后的空格。如:x=RTrim(“John“),此時(shí)x=“John”。7,Val函數(shù)語(yǔ)法是:x=Val(VariableName)這個(gè)函數(shù)將字符串里的數(shù)字字符串轉(zhuǎn)化為數(shù)字。如:Y=Val(“123”),則Y=123。當(dāng)VisualBasic發(fā)現(xiàn)下一個(gè)字符不是數(shù)字時(shí)就停止繼續(xù)轉(zhuǎn)化。8,Str函數(shù)與Val函數(shù)相反,Str函數(shù)將數(shù)字轉(zhuǎn)化為字符串。語(yǔ)法是:x=Str(VariableName)八、常量及注釋1,使用常量如果我們編一個(gè)程序從每筆收入中拿出40%用于飯卡的消耗,則在程序中我們會(huì)總是用到0.4這個(gè)數(shù)字。這時(shí)糧食漲價(jià)了,我們不得不把0.4全都改成0.5,這就顯得非常麻煩。我們本可以定義并使用一個(gè)常量為0.4,在漲價(jià)時(shí)把它小小調(diào)整一下就可以了。常量命名的要求與變量一樣。常量的使用范圍也與變量一樣,分為:局部常量(在過(guò)程里用Const說(shuō)明)、 模塊級(jí)常量(在窗體,模塊的聲明區(qū)用Const說(shuō)明)、全局常量(在模塊的聲明區(qū)用PublicConst說(shuō)明)2,使用注釋用“‘“注釋。如:‘ThisSubisusedtogetWindowsversion撇號(hào)右邊的東西VisualBasic通常用綠色的字來(lái)顯示,而且VisualBasic將忽略注釋的東西。在VisualBasic4.0所附的示例程序里使用了大量的注釋?zhuān)@樣使其他人(也包括自己)能更好地讀懂程序,所以使用注釋是一個(gè)好習(xí)慣。注釋的忽略性也有一些小用處,如:x=(3.5^2-4)*(5+6.73*7\2)-10.89現(xiàn)在你需要測(cè)試這一語(yǔ)句是否是必要的,于是你把它刪除,再運(yùn)行看是否能得出正確的答案,如果它是不必要的,那就很順利,如果它是必要的,你就不得不痛苦地再輸入一遍而且還有輸錯(cuò)的可能。現(xiàn)在你可以選擇把它注釋掉,這樣程序運(yùn)行將忽略它的存在,也可達(dá)到上面測(cè)試的目的。§2VisualBasic的語(yǔ)句一、條件選擇語(yǔ)句人們面臨選擇的時(shí)候精神會(huì)變得脆弱,這就是為什么我們總是輕信偷看來(lái)的答案。因此,選擇對(duì)于人類(lèi)來(lái)說(shuō)是一件復(fù)雜的事情,而對(duì)于計(jì)算機(jī)來(lái)說(shuō),則非常簡(jiǎn)單。它頭腦簡(jiǎn)單,因而永遠(yuǎn)不會(huì)發(fā)出哈姆雷特式的疑問(wèn)——“是生,還是死?”1,條件式條件式必然代表一個(gè)值,是真(True)或者是假(False)計(jì)算機(jī)可以檢測(cè)出這個(gè)值以做出相應(yīng)的行動(dòng)。下面就是判斷的例子,其中加下劃線(xiàn)的部分就是指條件式。 IfLove=TrueThen...與之相同的簡(jiǎn)略的形式是: IfLoveThen...而 IfLove=FalseThen... 與 IfNotLoveThen... 的意義是相同的。條件式中可加入邏輯運(yùn)算符,如: Ifx<20Andx>15Then 表示當(dāng)15<x<20程序?qū)⒆鍪裁础? Ifx<15Orx>20Then 表示當(dāng)x<15或x>20時(shí)程序?qū)⒆鍪裁础?,If-Then語(yǔ)句語(yǔ)法是:IfConditionThenInstruction例如: Ifn>25ThentxtABC.Text=“ABC”3,If-Then-EndIf語(yǔ)句IfConditionThenInstruction1Instruction2EndIf這種結(jié)構(gòu)可指示計(jì)算機(jī)執(zhí)行一串語(yǔ)句。4,If-Then-Else語(yǔ)句IfConditionThenInstructions1ElseInstructions2EndIf這種結(jié)構(gòu)指示計(jì)算機(jī)在條件不成立時(shí)應(yīng)該做的事,這樣保證了計(jì)算機(jī)至少執(zhí)行一些語(yǔ)句。5,If-Then-ElseIf語(yǔ)句IfCondition1ThenInstructions1ElseIfCondition2ThenInstructions2ElseIfCondition3ThenInstructions3ElseInstructions4EndIf類(lèi)似這樣的完整的語(yǔ)句可做出多次判斷,又保證計(jì)算機(jī)至少執(zhí)行一些代碼。6,SelectCase–case…case…endselect語(yǔ)句被選擇的值為許多定值時(shí),這個(gè)語(yǔ)句就更有用一些。SelectCaseVariableName/objectCaseValue1‘可以是變量值或?qū)ο竺鸌nstructions1CaseValue2Instructions2Caseelse‘除上述情況外的其他情況Instructions3EndSelect7,嵌套結(jié)構(gòu)我們可以把許多各式各樣的條件語(yǔ)句嵌套在一起,而且這種嵌套在理論上沒(méi)有限制。但事實(shí)上嵌套使用得越少,代碼就越容易被理解。在嵌套時(shí)最好使用便于觀察的縮排的格式。如:SelectCaseGradeCase"95"IfClass="31"ThenDorm="1106-1108"ElseIfClass="33"ThenDorm="1104-1105"EndIfEndSelect7,選擇函數(shù)IIf(expression,,)根據(jù)表達(dá)式邏輯值,返回兩個(gè)參數(shù)中的一個(gè)Choose(expression,,,...)根據(jù)表達(dá)式整數(shù)值,返回多個(gè)參數(shù)中的對(duì)應(yīng)位置的那個(gè)。二、循環(huán)語(yǔ)句計(jì)算機(jī)擅長(zhǎng)反復(fù)地做一件事,循環(huán)語(yǔ)句將發(fā)揮它的這種優(yōu)勢(shì)。1,Do-Loop循環(huán)Do-Loop循環(huán)基本上是一個(gè)死循環(huán),所以需要在循環(huán)時(shí)判斷一些條件。(1)DoWhile循環(huán)(當(dāng)Condition條件為真時(shí)執(zhí)行循環(huán))。DoWhileConditionInstructionsLoopWhile也可以放在Loop語(yǔ)句上。(2)Do-LoopWhile循環(huán)(先執(zhí)行一次程序體,再判斷條件為真則繼續(xù)執(zhí)行循環(huán))。DoInstructionsLoopWhileCondition這兩種循環(huán)的不同之處是:DoWhile循環(huán)先判斷條件,所以,DoWhile循環(huán)可能一次都不執(zhí)行。DoLoopWhile循環(huán)先執(zhí)行指令,再判斷循環(huán)條件。所以DoLoopWhile循環(huán)至少執(zhí)行一次指令。但它們都是當(dāng)一定條件為真時(shí)的循環(huán)。(3)DoUntil循環(huán)(條件為真即“退出”循環(huán))。DoUntilConditionInstructionsLoopDoUntil先判斷條件,所以循環(huán)可能一次都不執(zhí)行,它是當(dāng)一定條件為假時(shí)的循環(huán)。DoUntil等同于:DoWhileNotConditionInstructionsLoop(4)Do-LoopUntil循環(huán)(執(zhí)行程序體,直到條件為真時(shí)退出)。DoInstructionsLoopUntilConditionDoLoopUntil先執(zhí)行指令再判斷循環(huán)條件,所以指令至少被執(zhí)行一次。DoLoopUntil是當(dāng)一定條件為假時(shí)的循環(huán)。2,計(jì)數(shù)的循環(huán)For-Next(1)For-Next循環(huán)必須有一個(gè)控制變量,這個(gè)控制變量一般為整型。語(yǔ)法是:ForCounter=StartToEndInstructionsNextCounter這里的Counter就是控制變量。如果想運(yùn)行5次,可用下面的循環(huán):Fori=1To5InstructionsNexti這時(shí),每循環(huán)一次,i的值就加1。(2)向前向后計(jì)數(shù)ForCounter=StartToEndStepIncrementInstructionsNextCounterIncrement表明每次循環(huán)控制變量所加的值。如下面代碼也可循環(huán)5次:Fori=5To1Step-1InstructionsNexti只有當(dāng)Counter<=End時(shí)循環(huán)才執(zhí)行,當(dāng)Counter>End的時(shí)候循環(huán)就不執(zhí)行了。所以Fori=1To10Step7InstructionsNexti循環(huán)將執(zhí)行兩次,一次是當(dāng)i=1時(shí),一次是當(dāng)i=8時(shí)。最好不要在循環(huán)內(nèi)改變控制變量的值,這樣往往會(huì)導(dǎo)致邏輯上的錯(cuò)誤。(3)對(duì)象的計(jì)次循環(huán)Foreachelementingroup…..next‘針對(duì)一個(gè)數(shù)組或集合中的每個(gè)元素,重復(fù)執(zhí)行一組語(yǔ)句。可參見(jiàn)Csdn中Foreach….next語(yǔ)句或Printer對(duì)象與Printers集合。3,與條件語(yǔ)句一樣,循環(huán)語(yǔ)句也可以嵌套。如:DoWhileConditionFori=1To5InstructionsNextiLoop循環(huán)總是先從內(nèi)部開(kāi)始的。比較:Fori=1To4 Fori=1To4Forj=1To5 Forj=1To5Nextj NextiNexti Nextj是允許的 這種For-Next的纏繞是不允許的4,從循環(huán)中快速退出通過(guò)使用命令ExitDo和ExitFor,我們可以在循環(huán)未結(jié)束前跳出循環(huán)。但我們應(yīng)該保證所需的動(dòng)作完成后再跳出來(lái),否則也許會(huì)遇到新的錯(cuò)誤。而且不要試圖用Goto語(yǔ)句從循環(huán)外跳入循環(huán)。下面的代碼可以檢測(cè)出3至20之間的質(zhì)數(shù)。其中使用了循環(huán)的嵌套及條件語(yǔ)句,并且當(dāng)發(fā)現(xiàn)i不是質(zhì)數(shù)時(shí)立即用ExitFor轉(zhuǎn)向?qū)ο乱粋€(gè)數(shù)的檢測(cè)。SubForm_Click()Dimi,j,xAsIntegerFori=3To20x=FalseForj=2Toi-1If(iModj)=0ThenExitForIfj=i-1Thenx=TrueNextjIfxThenPrintiNextiEndSub5,遍歷對(duì)象(如:所有打印機(jī)、窗體等)使用ForEachobjectIncollection語(yǔ)句來(lái)遍歷集合中的對(duì)象(1)、遍歷所有窗體‘MDI窗體Load事件中無(wú)法列出子窗體,因?yàn)樗鼈冞€沒(méi)加載?!袛嗍欠駇di子窗體只能看name屬性,因?yàn)镸DI窗體沒(méi)有Mdichild屬性‘方法一(遍歷含MDI窗體)DimfrmAsvb.FormForEachfrmInFormsDebug.Printfrm.CaptionNext‘方法二(遍歷不含MDI窗體)DimiFori=Forms.Count-1To1Step-1Debug.PrintForms(i).CaptionNext(2)、遍歷打印機(jī)(VBMSDN自帶例程)DimXAsPrinterForEachXInPrintersIfX.Orientation=vbPRORPortraitThen'設(shè)定為系統(tǒng)缺省打印機(jī)。SetPrinter=X'終止查找打印機(jī)。ExitForEndIfNext三、建立過(guò)程與函數(shù)如同常量的定義一樣,有時(shí)不僅僅是幾個(gè)數(shù)字反復(fù)出現(xiàn)在程序中,而且是很多段代碼在做幾乎同樣的事,如果有一些通用的代碼可供調(diào)用的話(huà),那么程序就會(huì)簡(jiǎn)練得多,而且更為清晰,這就是過(guò)程與函數(shù)。過(guò)程和函數(shù)保存在FRM文件和BAS文件里。若一個(gè)過(guò)程保存在BAS文件里,那么這個(gè)過(guò)程可供程序里所有的代碼調(diào)用;如果一個(gè)過(guò)程保存在FRM文件里,那么這個(gè)過(guò)程只能被本窗體里的代碼調(diào)用到。創(chuàng)建過(guò)程或函數(shù)的簡(jiǎn)單方法是選擇Insert菜單的Procedure項(xiàng)。過(guò)程名,函數(shù)名的命名規(guī)則與變量名,常量名的命名規(guī)則一樣。1,過(guò)程結(jié)構(gòu)Subsubname(argumentlist)InstructionsEndSubargumentlist指的是參數(shù)列表,所謂參數(shù),就是指過(guò)程操作所需的指導(dǎo)條件。如下面過(guò)程:SubPrintHello(nAsInteger)DimiAsIntegerFori=1TonPrint"Hello"NextiEndSubn參數(shù)就是指導(dǎo)這個(gè)過(guò)程打印“Hello”的個(gè)數(shù)。當(dāng)有許多參數(shù)時(shí),可用“,”將它們分開(kāi)。如果在Form_Click事件過(guò)程里調(diào)用PrintHello過(guò)程,就可用鍵入: CallPrintHello(5) ‘其中Call是VisualBasic的保留字 PrintHello5后一種省略Call和括號(hào)的方法使這個(gè)過(guò)程看起來(lái)更象一個(gè)VisualBasic的語(yǔ)句,所以我們可以這樣認(rèn)為:建立好的過(guò)程可以當(dāng)作語(yǔ)句來(lái)使用。2,函數(shù)結(jié)構(gòu)函數(shù)結(jié)構(gòu)與過(guò)程結(jié)構(gòu)基本上是一樣的。Functionfunctionname(argumentlist)AstypeInstructionsEndFunction函數(shù)就是有返回值的過(guò)程,它自己是有數(shù)據(jù)類(lèi)型的。但Astype部分是可以省略的,這時(shí)函數(shù)的返回值將是變體類(lèi)型的值。在調(diào)用沒(méi)有參數(shù)的函數(shù)時(shí)也必須加括號(hào)。如:FunctionTotal(aAsInteger,bAsInteger,cAsInteger)AsIntegerTotal=a+b+cEndFunction調(diào)用時(shí)可以這樣:Answer=Total(10,20,30)又如:FunctionCurrentTime()AsStringCurrentTime=TimeEndFunction調(diào)用時(shí)應(yīng)該這樣:s=CurrentTime()我們看出建立好的函數(shù)與VisualBasic本身的函數(shù)在調(diào)用時(shí)也沒(méi)有什么不同。程序員可以建立自己的過(guò)程與函數(shù)庫(kù)以加快編程效率。3,傳值方式當(dāng)過(guò)程內(nèi)改變了參數(shù)的值時(shí),VisualBasic并不會(huì)產(chǎn)生錯(cuò)誤信息,但這樣可能引起一些混亂,如:SubPassedNotByValue(xAsInteger)x=x+1EndSub在事件過(guò)程中調(diào)用:SubForm_Click()DimiAsIntegeri=1000PassedNotByValueiPrintiEndSub結(jié)果會(huì)是什么呢?是1001。在復(fù)雜的過(guò)程里不小心改變了參數(shù)的值,而調(diào)用過(guò)程的代碼里這個(gè)參數(shù)又不應(yīng)該改變的情況是很有可能發(fā)生的。改進(jìn)的方法是:SubPassedByValue(ByValxAsInteger)x=x+1EndSub調(diào)用改為:SubForm_Click()DimiAsIntegeri=1000PassedByValueiPrintiEndSub結(jié)果將是1000,這就是傳值方式,傳值方式在參數(shù)行開(kāi)始處加上ByVal保留字。屬性總是用傳值方式傳遞的。4,程序跳轉(zhuǎn)在程序中加入OnexpressionGoToline(任何以字母開(kāi)頭以:結(jié)尾的標(biāo)識(shí)處)或OnErrorResumeNext或ExitDo/Sub/function/For等。5,自定義過(guò)程默認(rèn)參數(shù)在定義過(guò)程參數(shù)前加上Optinal關(guān)鍵字即表示該參數(shù)可省略,如:Sublookfor(Optionalaasstring=”O(jiān)K”)6,響應(yīng)外部過(guò)程DoEvents()響應(yīng)其他程序及系統(tǒng)的事件,在過(guò)程或循環(huán)中插入該語(yǔ)句,可避免因程序忙而無(wú)法響應(yīng)外部請(qǐng)求。§3VisualBasic的對(duì)象或類(lèi)靜態(tài)創(chuàng)建對(duì)象一般有兩種:一種是直接將對(duì)象從工具箱中拖放到窗口中,另一種是在程序中作用語(yǔ)句(dim/public/private等)聲明后再使用NEW關(guān)鍵字啟用。還有一種動(dòng)態(tài)加載對(duì)象的方法創(chuàng)建對(duì)象:先將對(duì)象使用語(yǔ)句聲明為object,然后使用Setobj=CreateObject()/Getobject()語(yǔ)句獲得對(duì)象并啟用。對(duì)象或類(lèi)的使用格式為:Object.方法/屬性或Object.集合/子對(duì)象(“成員”).方法/屬性給對(duì)象或類(lèi)賦值格式為:SetObj=OtherObject對(duì)象使用完畢后應(yīng)關(guān)閉(obj.close或unloadobject),或使用Setobject=Nothing徹底釋放對(duì)象。創(chuàng)建對(duì)象例:方法一、將對(duì)象拖動(dòng)到窗口中,這種方法一般適用于工具箱中的可見(jiàn)對(duì)象,如:基本控件或ActiveX控件/部件。方法二、使用語(yǔ)句,這種方法一般適用于工具箱中不可見(jiàn)的對(duì)象或類(lèi),如:Activedll等。靜態(tài)加載(需先在菜單“工程—引用”中引用該對(duì)象)dimCnAsNewADODB.Connection‘等效于publiccnasadodb.connection加setcn=newadodb.connetiondimRsAsNewADODB.Recordset動(dòng)態(tài)加載(無(wú)需引用,只需語(yǔ)句)DimCn,RsAsObjectSetCn=CreateObject("ADODB.Connection")SetRs=CreateObject("ADODB.Recordset")‘CreateObject()函數(shù)所指定的對(duì)象類(lèi)應(yīng)該存放在系統(tǒng)目錄中的DLL庫(kù)中或是在系統(tǒng)中注冊(cè)過(guò)的DLL?!瓽etObject()函數(shù)可以指定對(duì)象所在的文件和類(lèi),從而加載對(duì)象。有關(guān)函數(shù)詳見(jiàn)Csdn中相關(guān)內(nèi)容。第四章 Windows95的新控件VisualBasic的輸入輸出§1ToolBar(工具條)控件ToolBar就是那些在菜單下面的圖形鈕,這已經(jīng)成為Windows應(yīng)用程序的樣板。建立工具條在工具箱里單擊工具條圖標(biāo),拖到窗體的任何位置,VisualBasic自動(dòng)將ToolBar移到頂部。按F4鍵打開(kāi)屬性窗口。雙擊(Custom),打開(kāi)ToolBar屬性窗口。選擇Buttons標(biāo)簽。單擊Insert按鈕,VisualBasic就會(huì)在你的工具條上顯示一個(gè)空按鈕,現(xiàn)在為你的每一個(gè)按鈕重復(fù)這一步。單擊確定按鈕。如果你想把按鈕分組,首先生成一個(gè)分隔的按鈕,再在剛才提到的對(duì)話(huà)框里將這個(gè)按鈕的Style屬性改為3-Separator。為工具條增加圖畫(huà)在VisualBasic工具箱里單擊ImageList圖標(biāo),并將它拖到窗體的任何位置(位置不重要,因?yàn)樗偸遣豢梢?jiàn)的)。按F4打開(kāi)屬性窗口。雙擊(Custom),打開(kāi)ImageListCtrl屬性窗口。選擇Image標(biāo)簽。單擊InsertPicture,在現(xiàn)在圖形的對(duì)話(huà)框里選擇你想使用的位圖或圖標(biāo),然后單擊打開(kāi)按鈕。為每個(gè)你想添加圖形的工具條按鈕重復(fù)此步。單擊確定按鈕。單擊你的工具條,按F4,雙擊(Custom),顯示ToolBar屬性對(duì)話(huà)框。選擇General標(biāo)簽,在ImageList框里選擇剛才添加的ImageList控件。選擇Buttons標(biāo)簽,單擊緊挨Index框的向左或向右箭頭以選擇一個(gè)按鈕序號(hào)。出現(xiàn)在工具條最左邊的按鈕序號(hào)為1。在Image框里輸入一個(gè)數(shù),輸入為1,則顯示剛才ImageList控件里的第一個(gè)圖形,輸入為2,則顯示剛才ImageList控件里的第二個(gè)圖形。為每個(gè)按鈕重復(fù)第10和第11步。單擊確定按鈕,現(xiàn)在VisualBasic就會(huì)在工具條上顯示精美的圖形了。為工具條添加文本信息在剛才提到的ToolBar屬性對(duì)話(huà)框中選擇Buttons標(biāo)簽,在Caption框里輸入你想顯示在按鈕上的文本。添加ToolTipsToolTips是一種當(dāng)你點(diǎn)到工具按鈕是彈出的小標(biāo)簽。ToolTips很方便,可以告訴那些新手每個(gè)按鈕是干什么用的。在剛才提到的ToolBar屬性對(duì)話(huà)框中選擇Buttons標(biāo)簽,在ToolTipText框里輸入你想作為T(mén)oolTip的文本。如何編寫(xiě)代碼雙擊你的工具條,以下面的格式輸入代碼就可以了。PrivateSubToolbar1_ButtonClick(ByValButtonAsButton)SelectCaseButton.IndexCase1'CodetofollowifuserclicksthefirstbuttonCase2'CodetofollowifuserclicksthesecondbuttonCase3'CodetofollowifuserclicksthethirdbuttonEndSelectEndSub§2StatusBar(狀態(tài)條)控件和ToolBar一樣,選中狀態(tài)條,按F4鍵進(jìn)入屬性窗口,雙擊(Custom)可以進(jìn)入主要的設(shè)置窗口SBarCtrl屬性窗口。選擇面板形狀在SBarCtrl屬性窗口里選擇General標(biāo)簽,在Style列表框里選擇多面板(缺省形式)或單面板簡(jiǎn)單文本形式。添加或刪除狀態(tài)條面板在SBarCtrl屬性窗口里選擇Panels標(biāo)簽,單擊Insert按鈕添加一個(gè)面板,或單擊Remove按鈕刪除一個(gè)面板。在單面板里顯示文本在SBarCtrl屬性窗口里選擇General標(biāo)簽,在SimpleText框里輸入你想顯示在狀態(tài)條面板里的文本。用代碼顯示的方式是: StatusBar1.SimpleText="Newstringtoappear"四、在多面板里顯示文本或圖形在SBarCtrl屬性窗口里選擇Panels標(biāo)簽,用Index旁的按鈕選擇面板序號(hào)。在Text框里輸入你想顯示在狀態(tài)條面板里的文本。如果你想加入圖形,單擊Browse按鈕打開(kāi)一個(gè)圖形選擇對(duì)話(huà)框,選擇你想加入的圖形,然后單擊打開(kāi)按鈕。最后按確定按鈕。用代碼顯示的方式是:StatusBar1.Panels(x).Text="Newstringtoappear"如何編寫(xiě)代碼如果是一個(gè)單面板狀態(tài)條,當(dāng)用戶(hù)單擊狀態(tài)條時(shí),只需用下面的事件過(guò)程來(lái)響應(yīng):PrivateSubStatusBar1_Click()EndSub如果是一個(gè)多面板狀態(tài)條,就需要鑒別用戶(hù)單擊的是哪一個(gè)面板,可用下面的事件過(guò)程來(lái)識(shí)別用戶(hù)所單擊的面板:PrivateSubStatusBar1_PanelClick(ByValPanelAsPanel)SelectCasePanel.IndexCase1'CodetofollowifuserclicksthefirstpanelCase2'CodetofollowifuserclicksthesecondpanelCase3'CodetofollowifuserclicksthethirdpanelEndSelectEndSub§3ProgressBar(進(jìn)程條)控件進(jìn)程條的三個(gè)屬性Min屬性代表進(jìn)程條全空時(shí)的值,缺省時(shí)為0。Max屬性代表進(jìn)程條全空時(shí)的值,缺省時(shí)為100。Value屬性代表進(jìn)程條當(dāng)前的值(不用在屬性窗口里找這個(gè)屬性,它不出現(xiàn)在屬性窗口中,但它的確存在),它大于Min屬性,小于Max屬性。改變Value屬性的值將改變進(jìn)程條的進(jìn)度顯示。為了了解進(jìn)程條的功能,在窗體里添加一個(gè)進(jìn)程條和一個(gè)命令鈕,雙擊命令鈕進(jìn)入代碼窗口,鍵入如下代碼:PrivateSubCommand1_Click()IfProgressBar1.Value<ProgressBar1.MaxThenProgressBar1.Value=ProgressBar1.Value+5ElseProgressBar1.Visible=False‘當(dāng)進(jìn)程條滿(mǎn)了的時(shí)候讓進(jìn)程條消失EndIfEndSub§4Slider(滑塊)控件一、選擇滑塊的外觀Orientation屬性決定滑塊的方位,可以是垂直的或水平的滑塊。TickStyle屬性決定滑塊標(biāo)記的樣子。TickFrequency屬性規(guī)定了沿著滑塊的標(biāo)記的間隔大小,缺省的狀態(tài)是1,表明每個(gè)可能值都出現(xiàn)標(biāo)記,如果你把值設(shè)置為3,則每三個(gè)可能值出現(xiàn)一個(gè)標(biāo)記。滑塊的Min,Max,Value屬性這三個(gè)屬性和進(jìn)程條的這三個(gè)屬性差不多,Min,Max表示滑塊的最小和最大值,Value表示進(jìn)程條的當(dāng)前值。三、滑塊的LargeChange,SmallChange屬性L(fǎng)argeChange規(guī)定了當(dāng)用戶(hù)用鼠標(biāo)單擊滑塊時(shí),滑塊可移動(dòng)的距離。SmallChange規(guī)定了用戶(hù)按左箭頭或右箭頭時(shí)滑塊的移動(dòng)距離?!?TabStrip控件(象筆記本書(shū)簽或一組文件夾的標(biāo)簽)和ToolBar一樣,選中TabStrip,按F4鍵進(jìn)入屬性窗口,雙擊(Custom)可以進(jìn)入主要的設(shè)置窗口TabStrip屬性窗口。一、設(shè)置樣式在TabStrip屬性窗口里選擇General標(biāo)簽,在Style列表框里選擇Tabs或Buttons樣式。二、規(guī)定TabStrip的標(biāo)題,ToolTips和在TabStrip屬性窗口里選擇Tabs標(biāo)簽,在Caption框里輸入標(biāo)題。在TabStrip屬性窗口里選擇Tabs標(biāo)簽,在ToolTipText框里輸入ToolTip。增減標(biāo)簽總數(shù)在TabStrip屬性窗口里選擇Tabs標(biāo)簽,單擊InsertTab按鈕增加標(biāo)簽,單擊RemoveTab按鈕刪除標(biāo)簽。在TabStrip上顯示圖形1,在窗體里拖入一個(gè)ImageList控件,2,按F4打開(kāi)屬性窗口。3,雙擊(Custom),打開(kāi)ImageListCtrl屬性窗口并選擇Image標(biāo)簽。4,單擊InsertPicture,在現(xiàn)在圖形的對(duì)話(huà)框里選擇你想使用的位圖或圖標(biāo),然后單擊打開(kāi)按鈕。為每個(gè)你想添加圖形的Tab按鈕重復(fù)此步。單擊確定按鈕?,F(xiàn)在ImageList里存儲(chǔ)了你需要的圖形。選擇你的TabStrip,進(jìn)入TabStrip屬性窗口并選擇General標(biāo)簽,在ImageList列表框里選擇ImageList1?,F(xiàn)在選擇Tabs標(biāo)簽,單擊緊挨Index框的向左或向右箭頭以選擇一個(gè)Tab序號(hào)。在Image框里輸入一個(gè)數(shù),輸入為1,則顯示剛才ImageList控件里的第一個(gè)圖形,輸入為2,則顯示剛才ImageList控件里的第二個(gè)圖形。單擊確定按鈕。用戶(hù)響應(yīng)可用類(lèi)似下面的代碼來(lái)識(shí)別用戶(hù)在哪一個(gè)項(xiàng)目上單擊。PrivateSubTabStrip1_Click()SelectCaseTabStrip1.SelectedItem.IndexCase1'CodetofollowifuserclicksthefirsttabCase2'CodetofollowifuserclicksthesecondtabCase3'CodetofollowifuserclicksthethirdtabEndSelectEndSub在TabStrip上放置其它控件在用戶(hù)選擇了標(biāo)簽后,TabStrip要求你編寫(xiě)代碼來(lái)顯示或隱藏控件。下面的代碼上是一個(gè)TabStrip上有一個(gè)命令鈕和一個(gè)選項(xiàng)鈕的例子,當(dāng)用戶(hù)選擇了第一個(gè)Tab時(shí),選項(xiàng)鈕出現(xiàn),當(dāng)用戶(hù)選擇了第二個(gè)Tab時(shí),命令鈕出現(xiàn)。PrivateSubTabStrip1_Click()SelectCaseTabStrip1.SelectedItem.IndexCase1Command1.Visible=FalseOption1.Visible=TrueCase2Command1.Visible=TrueOption1.Visible=FalseEndSelectEndSub§6VisualBasic的輸入機(jī)制程序的基本操作就是數(shù)據(jù)的輸入,數(shù)據(jù)處理和數(shù)據(jù)的輸出。VisualBasic的可用于輸入的控件主要有:正文框TextBox、確認(rèn)框CheckBox、選項(xiàng)鈕OptionButton、列表框ListBox、組合框ComboBox、滾動(dòng)條ScrollBar、通用對(duì)話(huà)框控件。還有一個(gè)函數(shù)叫InputBox函數(shù),也可用于數(shù)據(jù)的輸入。一、通過(guò)正文框輸入數(shù)據(jù)1,我們只要取得正文框的Text屬性就可以對(duì)其進(jìn)行操作了。如下面代碼可將Text1正文框的正文變成大寫(xiě)輸出至Text2正文框。PrivateSubForm_Click()Text2.Text=UCase(Text1.Text)EndSub二、通過(guò)確認(rèn)框和無(wú)線(xiàn)鈕輸入數(shù)據(jù)我們只要檢測(cè)到CheckBox和RadioButton的Value屬性值就可以知道它們是否被選上了。通過(guò)列表框和組合框輸入數(shù)據(jù)列表框ListBox和組合框ComboBox在Windows的Open,SaveAs對(duì)話(huà)框里最為常見(jiàn)。組合框又包括三種類(lèi)型,這三種類(lèi)型要在它的Style屬性里設(shè)置。列表框僅僅把可以選擇的項(xiàng)目列出來(lái),而組合框里有的類(lèi)型可以允許用戶(hù)輸入數(shù)據(jù)。它們的異同是:名稱(chēng)是否有下拉選項(xiàng)是否允許用戶(hù)輸入列表框否否組合框類(lèi)型0是是組合框類(lèi)型1否是組合框類(lèi)型2是否2,列表項(xiàng)目的增減使用AddItem,RemoveItem語(yǔ)句。通常將項(xiàng)目增減的語(yǔ)句放入Form_Load事件里。ListBoxName.AddItemitemComboBoxName.AddItemitemitem是新項(xiàng)目名稱(chēng),必須是字符串類(lèi)型,非字符串類(lèi)型可通過(guò)Str函數(shù)或Format函數(shù)來(lái)轉(zhuǎn)換。列表框,組合框的每一項(xiàng)目都有一個(gè)Index值,第一個(gè)項(xiàng)目的Index值是0,第二個(gè)是1,依此類(lèi)推。刪除項(xiàng)目可通過(guò)刪除其Index值來(lái)實(shí)現(xiàn)。ListBoxName.RemoveItemitemComboBoxName.RemoveItemitem如:ListBoxName.RemoveItem0則刪除了第一項(xiàng),這時(shí)原來(lái)的第二項(xiàng)就變成了第一項(xiàng)。在VisualBasic4.0里程序員終于可以在設(shè)計(jì)階段設(shè)定列表項(xiàng)目了。方法是:在屬性窗口選擇List屬性,將出現(xiàn)一個(gè)下拉列表,在列表中輸入第一項(xiàng),按Ctrl+Enter,輸入第二項(xiàng)……,最后用Enter結(jié)束。3,取得列表框,組合框的數(shù)據(jù)可以通過(guò)取得Text屬性或通過(guò)取得ListIndex屬性來(lái)判斷哪一項(xiàng)被選擇了。ListIndex屬性的值也同樣是第一個(gè)為0,第二個(gè)為1……如:IfList1.Text=“VisualBasic”ThenInstructionsIfList1.ListIndex=1ThenInstructions組合框有時(shí)允許用戶(hù)自己輸入數(shù)據(jù),這時(shí)所輸入數(shù)據(jù)的ListIndex值為-1。通過(guò)滾動(dòng)條ScrollBar取得數(shù)據(jù)在VisualBasic的工具箱里有兩種滾動(dòng)條:一種是垂直的,一種是水平的,它們的差異無(wú)非是擺放的方向不一樣。1,滾動(dòng)條的主要屬性及事件(1)Min,Max屬性Min屬性決定滾動(dòng)條最左端或最頂端所代表的值。Max屬性決定滾動(dòng)條最右端或最下端所代表的值。(2)LargeChange,SmallChange屬性SmallChange決定在滾動(dòng)條兩端的箭頭鈕上單擊時(shí)改變的值。LargeChange決定在滑塊上方或下方區(qū)域單擊時(shí)改變的值。(3)Value屬性Value屬性代表當(dāng)前滑塊所處位置的值,這個(gè)值由滑塊的相對(duì)位置決定。(4)Change事件當(dāng)滑塊位置發(fā)生變化時(shí)就引發(fā)了Change事件。2,取得滾動(dòng)條的數(shù)據(jù)滾動(dòng)條并不是一個(gè)數(shù)據(jù)輸入的好控件,因?yàn)槟銦o(wú)法從滾動(dòng)條上直接看出輸入的數(shù)據(jù),但它的優(yōu)點(diǎn)是可以表示一定范圍里的相對(duì)位置。為了得到數(shù)據(jù),只要取得滾動(dòng)條的Value屬性就可以了。五、InputBox函數(shù)InputBox函數(shù)提供一個(gè)簡(jiǎn)單的對(duì)話(huà)框供用戶(hù)輸入信息。在把其它版本的BASIC程序移植到VisualBasic時(shí),InputBox函數(shù)通常用

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論