學(xué)習(xí)Vb編程基本概念_第1頁
學(xué)習(xí)Vb編程基本概念_第2頁
學(xué)習(xí)Vb編程基本概念_第3頁
學(xué)習(xí)Vb編程基本概念_第4頁
學(xué)習(xí)Vb編程基本概念_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

代碼基礎(chǔ):

變量的簡單定義格式:dim變量名這種定義未指明變量的數(shù)據(jù)類型,這時的變量類型是"

變體類型”,它自動識別字符串或數(shù)字(字符串要加引號)。

數(shù)據(jù)類型的定義方法:

定義變量最簡單的方法是用“Dim”關(guān)鍵字,它的語法:

Dim【變量名】As【數(shù)據(jù)類型】

如:DimIndexAsInteger

也可以在一行中定義多個變量,如:

DimIndexAsInteger,NumberAsLong

但把多個變量定義成同一類型不能寫:

DimIndex,NumberAsInteger,這樣實際index是變體變量。

有時為了簡便,也以符號進行簡單的定義,作用是和上面一樣的。整型可以用“%”代替,長

整型可以用代替,單精度可以用"!”,雙精度實型可以用"#"定義,字符型用如剛才的

第一個例子可以寫成:

DimIndex%等價于DimIndexAsInteger

對于常量的定義用Const定義,如:ConstCOLOR=255。

constPI=3.1415926

注:變量一般用小寫,常量則全部大寫。

對于程序中經(jīng)常出現(xiàn)的數(shù)值,應(yīng)設(shè)常量,這樣一是書寫方便,其二,如果要改變該數(shù)值,只

需改變定義常量的語句值,而不需改變每個語句,提高了效率。

重點筆記:變量

變量名要以字母開頭,在變量名中唯一能用的符號是下劃線(_),相同的大寫或小寫字母的

變量,視為同一變量,即不區(qū)分大小寫。

變量的作用范圍關(guān)健字:Public(公用),Private(單個模塊),Dim(局部);在VB代碼區(qū)

域中包含四類模塊區(qū)域:窗體,MDI窗體,標(biāo)準(zhǔn)模塊,類模塊。這是第一層;每一模塊區(qū)

域又分成了通用區(qū)域和過程區(qū)域,這是第二層。這就是VB的結(jié)構(gòu),各個區(qū)域之間界線分明。

變量受這些因素的影響也要采用不同方式,標(biāo)明它的作用范圍是全局還是單個模塊還是單個

過程。

1,在單個事件過程中可見的:在本過程內(nèi)部用DIM關(guān)健字;

2,在單個模塊中可見的:在本模塊頂部(窗體模塊會標(biāo)明"通用"字樣)聲明段用Private關(guān)

健字(也可用DIM關(guān)健字);注意,不能在一個過程內(nèi)部聲明模塊級變量。

3,在所有模塊可見的:在任一模塊頂部(窗體模塊會標(biāo)明”通用“字樣)聲明段用Public關(guān)

健字,注意:1,在Form窗體模塊頂部的“通用”部分不能聲明public的數(shù)組,常數(shù),結(jié)構(gòu)類

型和API函數(shù)。2,在一個過程的內(nèi)部不能聲明公用變量。

在一個事件中用DIM聲明的局部變量,每次觸發(fā)時產(chǎn)生,完成后消失,不會保留事件運行

后的值;如果要一直保留一個局部變量的值,要使用-靜態(tài)變量.在過程內(nèi)部用static關(guān)健

字聲明,它能在第二次觸發(fā)該事件時保留前一次運行結(jié)果,繼續(xù)運算,而不會來個"重新DIM,

初始化”,它只在運行時第一次觸發(fā)該事件時進行初始化。

注:靜態(tài)變量如果要初賦值,不能直接進行,要根據(jù)變量未賦值的狀態(tài)使用if語句,如Ixn

為變體變量:iflxn=EMPTYthenlxn=336525,例下:

PrivateSubCommandl_Click()

StaticIxnAsInteger

Ixn=5錯??!應(yīng)改為IfIxn=0ThenIxn=5

Ixn=Ixn+1

PrintIxn

EndSub

變量的數(shù)據(jù)類型:

一,數(shù)值型。

1,整型(integer),聲明字符%,范圍-32768到32768。占用2字節(jié)。

2,長整型(long),聲明字符&,范圍-2147483648到2147483648。占用4字節(jié)。

3,單精度實型(single),聲明字符!,小數(shù)點后有效數(shù)字7位,占用4字節(jié)。

4,雙精度實型(double),聲明字符#,小數(shù)點后有效數(shù)字15位,占用8字節(jié)。

5,貨幣型(currency),聲明字符(Email地址中的那個at號"小老鼠"),這種類型精度高,

專用于貨幣計算或定點計算,小數(shù)點后有效數(shù)字4位,占用8字節(jié)。

6,字節(jié)型(byte),存儲0--255之間的整數(shù),常用來存儲二進制數(shù)據(jù),圖形和聲音文件等,

它只占1個字節(jié),節(jié)省資源!

二,字符串型(string),聲明字符$.

1,變長字符串變量,平常定義的如:dim(public)1xnasstring,運行時自動調(diào)整長度。

2,定長字符串變量,定義如:dim(public)lxnasstring*50,這時Ixn被定義為包含50個字符

的變量,給它賦值時若少于50個字符,則用空格補足(要刪除空格用Trim和RTrim函數(shù)),

多于50個則刪掉。使用定長字符串的情形如在隨機文件的讀寫操作中,注:定長字符串不

能在類模塊中定義為公用(public)變量。

三,日期型(date)

任何可辯認(rèn)的文本日期都可賦值給date變量,日期文字前后要加上#號,或直接用文本定義,

格式:dim變量名asdate.

dimIxnasdate

賦值格式:變量=#(或')月/日/年/時:分:秒AM或PM#(或")

lxn=#06/14/0120:50:31AM#或

lxn="06/14/018:50:31PM"

如果是一個數(shù)值直接賦給日期型變量,如lxn=35477.998,則小數(shù)點左邊的值代表日期信息,

小數(shù)點右邊的值代表時間信息(如午夜為0中午為0.5),上面Ixn的時間值顯示為97-2-16

23:57:07.(我沒看懂)。

四,邏輯型(boolean)

也叫布爾型變量,它只有兩個值:true(-l)和false(O).[問題:當(dāng)為true時值是1還是一1?我

試了?一下是一1,即用printcint(x)試的。]

五。變體型(variant)

可適用于各種數(shù)據(jù)類型,一個沒有指明類型的變量VB就指定為此類型。

六,對象型(object或commandbutton或textbox等對象名,模塊名)

這種變量為指向程序中對象的指針,先聲明為某類型對象,格式:

dim變量as對象類型名(如果對象為object,則表示可指向任何類型對象)dimIxnas

commandbutton(定義Ixn為按紐對象類指針),

賦值格式:set變量名=對象名稱

Setlxn=command1

這時,就可以用Ixn來代替command1了,如:lxn.caption="退出"

注:如果加上New關(guān)健字,可以新建窗體,類模塊,對象庫中的對象,對象變量就成了1

個對象。Set變量名=New對象名稱。

七,自定義類型,也叫結(jié)構(gòu)類型。

第1步:建立類型:必須在模塊級用type語句定義,格式:

private(或public)type類型名

成員1as類型

成員2as類型……

endtype

如:privatetypeIdd

aasstring

basinteger

casstring

endtype

第2步:定義此類型的一個變量:格式:

dim(或public等)變量名as剛才創(chuàng)建的類型

如:dimIxnasIdd

第3步:變量的賦值及使用:用點號連接每一個成員,分別賦值,賦值格式:

變量.成員1=值

變量.成員2=值……

如:lxn.a="李小敏"

lxn.b=336525

lxn.c="李新寧"

凡是在程序中使用時,就要以“變量.成員名”來引用。

八,枚舉類型。在模塊通用部分聲明,格式:

Private(Public)Enum類型名privateenumIxn

成員1(可選=常數(shù))李新寧

成員2(=常數(shù))……李小敏

endEnumendEnum

然后在程序中定義一個此類型變量,Dim變量as類型。如:dimmasIxn

意思是:變量m的"取值范圍”是:李新寧(值為0)或李小敏(值為1)

"值為0"?不給成員賦值,缺省狀態(tài)時第1個成員為0(相當(dāng)于寫:李新寧=0)

第2個成員為1…類推,總之成員的值為一個“長整數(shù)”。可自己賦給。枚舉類型的作用是在

代碼中可簡化某些總在幾個值之間切換的情況,引用如寫ifm=李新寧thenend

(這種類型實用價值不大)。

變量數(shù)據(jù)類型的轉(zhuǎn)換,有以下函數(shù):

cbool(字符串或數(shù)值表達式)--返回布爾類型,如:a=2:b=2:lxn=cbool(a=b)

那么Ixn值為true

cbyte(O到255的整數(shù))一返回BYTE類型

ccur(參數(shù))-返回貨幣型

cdate(一個有效的日期表達式)-轉(zhuǎn)換為日期型

cint(參數(shù))-返回(或叫轉(zhuǎn)換)integer型,參數(shù)的小數(shù)部分四舍五入

clng(參數(shù))-返回long型,小數(shù)部分四舍五入。

csng(參數(shù))--返回single(單精度)型,

cdbl(參數(shù))一返回double(雙精度)型。

cvar(參數(shù))-返回變體型

cstr(參數(shù))--返回string字符串型。

判斷代碼中一個變量的數(shù)據(jù)類型的函數(shù):vartype(變量名)或typename(變量名),vartype(變

量名)返回一個整數(shù)值,如返回2代表整型,3代表長整型,4代表單精度,5代表雙精度,

7代表日期型,8代表字符串等。例如有個叫Ixn的變量,不知它是什么類型,可用

x=vartype(lxn),如果x等于2就說明Ixn是整型,8就是字符串等等。lypename(變量名)返回

一個該變量類型名的字符串,如Ixn是整型變量,那么typename(lxn)返回值為“integer"字符

串。

★數(shù)組的定義類似于變量定義,所不同的是數(shù)組需要指定數(shù)組中的元素個數(shù),例如:

Dimlxn(99)AsInteger

這個數(shù)組中包含100個元素,下標(biāo)從0到990

也可以指定下標(biāo)的起始值,例如:

Dimlxn(2to10)AsInteger

這個數(shù)組含有九個元素,下標(biāo)從2至U10。

還可以定義多維數(shù)組:

Dimlxn(4,2to5,3to6)AsInteger

上例定義了一個三維數(shù)組(4X4X4)。

★VB算術(shù)運算符:+(加),-(減),*(乘),/(除),\(整除),Mod(取余數(shù)),人(乘

方),&(字符串連接)

算術(shù)運算符優(yōu)先級:()括號;八乘方;-負(fù)號;*。/乘,除;'整除;Mod取余;+,-加,減

VB比較運算符:=(等于),<>(不等于),〈(小于),>(大于),<=(小于等于),>=(大于等于)

邏輯運算符:And:兩邊表達式為真時,結(jié)果為真;

Or:兩邊表達式只要有一個為真時,結(jié)果為真;

Not:后面跟的表達式若為真,結(jié)果為假,后跟表達式為假,結(jié)果為真;

Xor:兩邊表達式一真一假時,結(jié)果為真,若兩邊表達式同真同假,結(jié)果為假。★IF……

THEN語句:

簡單:if條件then語句

復(fù)雜:if條件1then

語句11

語句12

語句13……

elseif條件2then

語句21

語句22

語句23……

elseif條件3then

else

前面條件都不成立時執(zhí)行語句

endif

分支結(jié)構(gòu):selectcase語句

結(jié)構(gòu):selectcase變量(也可以是一個屬性或表達式)

case可能值一(數(shù)值,字符串或其他值)

語句

case可能值二

語句

case可能值三

語句

case可能值四,可能值五,可能值六……(如果有多個可能值都執(zhí)行一條語句,寫在一起,

用逗號隔開)

語句

caseelse(也可以沒有)

語句

endselect

在selectcase語句中可以使用關(guān)系運算符大于,小于〈等于二等關(guān)系運算符,需要用關(guān)鍵字IS

和TO。用個例子來說明:

PrivateSubCommandl_Click()

DimageAsInteger

age=Textl.Text

SelectCaseage

CaseIs<14(如果age小于14時)

Label1.Caption="小朋友,你好!”

Case14To23(如果age在14至lj23時)

Labell.C叩lion="學(xué)生朋友,認(rèn)真讀書吧?!?/p>

Case24(如果age是24時)

Label1.Caption="你和我是同齡人”

CaseIs>100(如果age大于100時)

Label1.Caption="你真是個老不死!”

CaseElse(如果age不滿足以上所有值的范圍時)

Labell.Caption="按道理我要尊重你?!?/p>

EndSelect

EndSub

看會了吧,就照著用即可。

循環(huán)結(jié)構(gòu):FOR……NEXT……語句:

格式:FOR循環(huán)變量=初值TO終值STEP步長

循環(huán)體

NEXT循環(huán)變量

如果在循環(huán)執(zhí)行過程還未結(jié)束時要跳出循環(huán),可用exitfor語句。

例:PrivateSubCommand2_Click()

Dima%,name$

Fora=1To10

name=InputBox,輸入姓名”)

Printname

Ifname=nlxnHThenExitFor

Nexta

EndSub

第二種很重要的循環(huán)結(jié)構(gòu)是:DO循環(huán)

格式:A。DOWHILE條件

循環(huán)體

LOOP

BoDO

循環(huán)體

LOOPWHILE條件

將WHILE條件放在循環(huán)體的前面與后面,是不同的,A格式的條件在前,執(zhí)行時先檢測條

件,為真則執(zhí)行循環(huán),為假則不執(zhí)行循環(huán),如果第一次檢測條件即為假,則一次也不執(zhí)行循

環(huán),B格式的結(jié)構(gòu)WHILE條件在后,能保證不論條件的真假至少能執(zhí)行一次循環(huán)。

例:PrivateSubForm_Load()

Dimhs$,ss%

Do

hs=InputBox("輸入","華氏")-INPUTBOX的提示欄,標(biāo)題欄,它的所有輸入都是字符型

ss=Int((Val(hs)+40)*5/9-40)

MsgBoxss,,"攝氏度"--MSGBOX的輸出內(nèi)容,標(biāo)題欄,無按紐參數(shù)

LoopWhilehs<>""但逗號不能少

end-由于是在formjoad事件中,所以這個end不可丟。

EndSub

上例將華氏溫度轉(zhuǎn)為攝氏度。

★編寫對象的自動拖放操作:

lo將要拖放對象的dragmode屬性設(shè)置為1(這樣就可自動拖動)

20設(shè)置要拖放對象在拖動過程中的圖標(biāo)提示:dragicon屬性。

3。編寫拖放終點對象的dragdrop事件(或dragover事件)過程。

例:將窗體上圖片框1的圖片拖到圖片框2里:

PrivateSubForm_Load()

Image1.Picture=LoadPicture(”c:\我的文檔'mywebs'紅樓夢4.bmp")加載圖片

Image1.DragMode=1對象可移動

Image1.Dragicon=LoadPicture(nc:\ucdos\ico\print.icon)移動時的圖標(biāo)

EndSub

PrivateSubImage2_DragDrop(SourceAsControl,XAsSingle,YAsSingle)

Image1.Visible=False當(dāng)移到圖片框2時,圖片框1隱藏。

Image2.Picture=Image1.Picture將圖片復(fù)制到圖片框2中

EndSub

在image2的dragdrop事件中有三個參數(shù):source和x以及y,source的意思是“源對象”,即

要拖動對象,這里可用它來代替image1,如在事件過程中寫:source.visible=

falseimage2.picture=source.picture

★在窗體中添加簡單的動畫:對象的移動MOVE方法:

要移動的對象.MOVE移動后橫坐標(biāo),縱坐標(biāo),寬度,高度

piclurel.move800,500(單位:堤;1堤=1/1440英寸

用MOVE方法不僅可以移動對象位置,而且可以改變對象的尺寸大小,如下:

對象名.moveleft,top,width,height

Form1.Move5000,0,5000,50(注:單位為堤)

例:PrivateSubForm_Load()

Picture1.Picture=LoadPicture("c:\我的文檔'mywebs'紅樓夢l.bmp")

Timerl.Interval=1

Timer2.Interval=1

Timerl.Enabled=True

Timer2.Enabled=False

EndSub

PrivateSubTimerl_Timer()

IfPicturel.Left>0AndPicturel.Top>0Then

Picture1.Left=Picturel.Left-50

Picturel.Top=Picture1.Top-70

Else

Timer2.Enabled=True

Timerl.Enabled=False

EndIf

Picture1.MovePicturel.Left,Picturel.Top

EndSub

PrivateSubTimer2_Timer()

IfPicturel.Left<5000AndPicturel.Top<3000Then

Picturel.Left=Picturel.Left+50

Picture1.Top=Picturel.Top+70

Else

Timerl.Enabled=True

Timer2.Enabled=False

EndIf

Picture1.MovePicture1.Left,Picturel.Top

EndSub

★添加標(biāo)準(zhǔn)模塊:"工程"菜單"添加模塊"菜單項。module1是缺省模塊名。此名字可在其

屬性窗口中改變(只有此一項“屬性")。標(biāo)準(zhǔn)模塊與窗體模塊并列于一個工程之內(nèi)。

在標(biāo)準(zhǔn)模塊中聲明公用變量(或叫全局變量)格式:

public變量名as類型

publicIxn

在前面我們用DIM定義變量,它們都只是局部變量,即只在某個事件過程中可見,而在標(biāo)

準(zhǔn)模塊中定義的全局變量,則在整個工程中可見,即定義一次之后在其它任何事件中可直接

訪問。

在標(biāo)準(zhǔn)模塊中創(chuàng)建通用過程:通用過程在整個程序中可見。象全局變量一樣。

可創(chuàng)建三種類型的通用過程:函數(shù)過程,子過程(也叫sub過程),屬性過程

函數(shù)的語法格式:publicfunction函數(shù)名(形參表)as返回值類型(這個"as返回值類型"

不能丟!?。┖瘮?shù)體

函數(shù)名=返回值

Endfunction

在事件過程中調(diào)用函數(shù)的方式為:變量=函數(shù)名(實參)-它代表一個確定值,本質(zhì)是一個

變量,可以出現(xiàn)在變量可出現(xiàn)的任何地方。

附出錯經(jīng)驗一則:我想在一個事件中用個變量a,使第一次單擊該事件時a=l,第二次單擊該事

件時a=2;第三次單擊該事件時a值為3,即自增1的運算,我在事件中寫:dima

a=l

a=a+l

可每次單擊都得到同一個值2,原來,這是因為a是該事件中的局部變量,

每單擊一次就重新執(zhí)行一次,后來,我想在form」oad()事件中寫:dimaa=l,

然后在該事件中只寫a=a+l,結(jié)果卻變成a每次都是1,怎么回事?form_load事件不是每次

程序運行時自動運行的嗎,沒錯,但form」oad本身也只是一個事件,在其中定的變量

dima也屬局部變量,只在form_load一個事件中可見,因此在另一個事件中用到的a根本

沒定義,如何定義一個變量在同一個窗體模塊中各事件均可見呢?那就是在“(通用)"部分

進行變量的聲明,這樣在該窗體模塊中都可見,但通用部分不能直接進行賦值等運算(可按

格式編寫函數(shù),子程序等等,同標(biāo)準(zhǔn)模塊),參考辦法:(通用):dimaform」oad():(在其他

事件也可,只要在引用a值的那個事件前能賦a=l即可)a=l引用a的事件:a=a+l

,”對象.屬性名”的本質(zhì)是一個變量,是在該窗體模塊(通用)中缺省聲明的變量

在標(biāo)準(zhǔn)模塊中創(chuàng)建子過程:格式:publicsub子過程名稱(形參)-此處要括號

過程體

endsub

函數(shù)與sub過程的不同是:函數(shù)用其名字返回一個值,子過程處理一段程序過程,無返回值。

在標(biāo)準(zhǔn)模塊子過程中設(shè)置某個對象屬性時,必須指明哪個窗體,如:publicsublxn()

form1.image1.visible=trueendsub其中那個"forml."不能丟。

在事件中調(diào)用子過程的格式:子過程名稱實參-這里的實參不要用括號,如果調(diào)用時作

為表達式才要括號,多個實參用逗號分開。

不論是函數(shù)或是sub過程,其形參與實參之間必須保證類型與數(shù)量的一致。

★在文本框的一個輸入字符串尾加上"&chr(13)+chr(10)”,它能自動換行?;蛘哂肰B的常

數(shù)vbCrLf也可換行。相當(dāng)于C中的"\n".如:a$="李新寧"&chr(13)+chr(10)textl.text=a$

★什么是集合?集合是一組相關(guān)的對象。

窗體上的全部對象被稱作controls(控件)集合,如果一個程序有多個窗體,就要在前面加

上窗體名稱,如:forml.controls,每個窗體都有一個controls集合。這種"集合"被視作也是該

窗體的一個對象,它與窗體的關(guān)系地位有點象windows的文件夾。可以通過集合引用其中

的對象,格式一,直接使用(集合名!元素):

窗體名稱.controls!對象名稱.屬性=屬性值

form1.controls!label1.caplion="李新寧"

注:其中的感嘆號是controls集合與對象的連接符號

格式二,采用該對象在controls中的索引值(集合名(索引)):

窗體名稱.controls(索引值).屬性名=屬性值

form1.controls⑴.caption="李新寧"

注:一個對象在其所在窗體controls集合中的下標(biāo)是如何排列的呢?-按對象創(chuàng)建時的順序

逆向確定其下標(biāo)值,最后一個創(chuàng)建的對象下標(biāo)為0,倒數(shù)第二創(chuàng)建的那個對象下標(biāo)為1,如

果該窗體共有n個對象,那么一開始創(chuàng)建的那個對象的下標(biāo)為n-1.

集合的運用:FOREACH-IN-NEXT循環(huán),對一組對象(對象組)的操作。

格式:FOREACH對象變量IN集合名

對當(dāng)前對象的操作過程

NEXT對象變量

以上用于對一組對象的操作,例如將窗體上所有對象的位置向左移1000堤:

PrivateSubCommandl_Click()

ForEachIxnInControlsIxn是"當(dāng)前對象"的"替身"

Ixn.Left=Ixn.Left+1000將當(dāng)前對象的left屬性加1000

NextIxn下一個controls里的成員

EndSub

如果是有目的地選擇一部分對象的移動,怎么辦呢?可以利用對象的標(biāo)記tag屬性,區(qū)別不

同對象,下例tag屬性值為Ixm的對象就不移動,

PrivateSubCommandl_Click()

ForEachIxnInControls—controls中的每個對象

Iflxn.Tago"Ixm"Then

Ixn.Left=Ixn.Left+1000

EndIf

NextIxn

EndSub

PrivateSubForm_Load()

Command1.Tag="Ixm"-tag是個有趣的屬性,它可以由程序員指定一個

EndSub該對象的“標(biāo)記”,好區(qū)別其他相關(guān)對象。

集合不僅有controls一種,還有其他如窗體集合,數(shù)據(jù)庫集合等,值得重視。

★數(shù)組:固定了元素數(shù)量的數(shù)組叫定長數(shù)組,元素數(shù)量可在程序運行中改變的數(shù)組叫動態(tài)

數(shù)組。

定長數(shù)組的聲明:全程(公用)數(shù)組(在標(biāo)準(zhǔn)模塊中):

public數(shù)組名(第1維長度,第2維長度,……)as數(shù)據(jù)類型

局部數(shù)組(在某事件中):

static數(shù)組名(第1維長度,第2維長度,……)as數(shù)據(jù)類型

例:publiclxn(19)asstring下標(biāo)從0到19共20個元素。

創(chuàng)建動態(tài)數(shù)組:步驟:1。不指明下標(biāo)定義數(shù)組。如publiclxn()asinteger,同時在標(biāo)準(zhǔn)模塊中

定義一個變量。如:publicaasinteger

2.在程序某處設(shè)置一個變量(或其他可確定值)值,如:a=inputbox("輸入“,”個數(shù)");

3。用redim語句確定數(shù)組大小。如:redimlxn(a)

也可以不用第3步,直接在數(shù)組使用時用a限定其FOR……NEXT……循環(huán)上限。

forx=ltoa

lxn(x)=

nextx

在一個事件的中途要退出這個事件,用ExitSub關(guān)鍵字。

★VB程序中的出錯處理:錯誤處理程序使程序在出錯時繼續(xù)運行,處理出錯的步驟是:

1,在程序中可能出錯的語句前加上一條語句:

onerrorgoto標(biāo)號:

如:onerrorgoloIxn:

此處標(biāo)號是當(dāng)onerror后一條語句出錯時,程序?qū)⑥D(zhuǎn)到標(biāo)號指定的”錯誤處理程序段“。通常

放在本事件過程的底部。如果只是出錯時起語旬轉(zhuǎn)向的作用,則"錯誤處理程序段"可空。但

標(biāo)號及冒號不能少,如:

commondialog1.cancelerror=true列出出錯的情形

onen-orgotoIxn:出錯時轉(zhuǎn)向Ixn:

commondialog1.showsave如果用戶單擊了"取消"按紐,就會"出錯"。

Ixn:為空,只是跳過事件體,直按endsub了。

endsub

如果只是出錯時將程序轉(zhuǎn)到下一句,只要在出錯語句前加上OnErrorResumeNext.

真正的錯誤處理程序要用到一個屬性變量:Err.Number,它就是在遇到程序崩潰時對話框中

的那個數(shù)字,表示是第幾號的錯誤。另外,在事件底部,錯誤處理程序開始的標(biāo)號前,一般

要加上ExitSub語句,以便使程序在無錯的情況下不會去執(zhí)行錯誤處理段。在錯誤處理程

序結(jié)束時,要用"resume"將程序執(zhí)行順序返回程序中。resume后可跟標(biāo)號,舉一個例子如下:

privatesubcommandl_click()

onerrorgotoIxn:出錯時轉(zhuǎn)向Ixn:

exitsub防止程序正常時也執(zhí)行后面的出錯程序,因此無錯時結(jié)束事件。

Ixn:出錯程序段標(biāo)號(名稱)

iferr.number=71then如果出現(xiàn)71號錯誤

msgbox("軟驅(qū)門沒關(guān)好"),,“軟驅(qū)出錯”提示

resume返回程序出錯處,如果想只提示一次,那么用resumenext執(zhí)行下一句else

msgbox("無法找到此文件),"找不到"其他錯誤

resumestop:轉(zhuǎn)向標(biāo)號為stop:語句

endif

stop:為空

endsub

還有一個屬性變量err.description,它顯示出錯時的文字提示內(nèi)容。可直按用msgbox輸出到用

戶,注意:單獨的resume語句返回出錯的原程序語句,如果錯誤一直存在,那么就一直顯

示,因此,有必要改為resumenext或在程序中采用如下技巧(出錯提示三次后就越過錯誤):

PrivateSubForm_Load()

Dima%在事件開頭聲明一個變量a

OnErrorGoToIxn:

Image1.Picture=LoadPicture("c:\")

ExitSub

Ixn:

Ifa<3Then如果少于三次就繼續(xù)提示

MsgBox(Err.Description),,"error"用msgbox函數(shù)輸出對話框

a=a+l用于記錄次數(shù)

Resume返回出錯處

Else

resumenext返回出錯下一條語句

EndIf

EndSub

訪問系統(tǒng)DLL庫:系統(tǒng)WINDOWS提供了三個DLL庫,它們的庫名為:USER32;

GDI32;

KERNEL32

要訪問DLL,先要給程序添加一個標(biāo)準(zhǔn)模塊,在標(biāo)準(zhǔn)模塊中聲明DLL過程。

PublicDeclaresub過程名lib"庫名"alias”別名"(參數(shù)表)或

PublicDeclarefunction函數(shù)名lib"庫名"alias"別名"(參數(shù)表)as返回值類型

例:PublicDeclareFunctionGetWindowsDirectoryALib"kemel32"(ByVaiIxnAsString,ByVai

IxmAsLong)AsLong真酷!連參數(shù)名也自定了。

說明:

其中,過程名或函數(shù)名可以自定,如果是自定的(不同于DLL庫中的名字),那么就必須在

Alias”別名"中寫出它在DLL庫中的全名;如果過程名或函數(shù)名就是DLL庫中的過程名,

則Alias"別名"可以省略。如上例若將API函數(shù)GetWindowsDirectoryA換成Idd,寫成:Public

DeclarefunctionIddlib"kemel32"alias"GetWindowsDirectoryA"_

(byvalIxnasstring,byvalIxmaslong)aslong

聲明了API函數(shù),它的調(diào)用與調(diào)用一般的VB函數(shù)沒區(qū)別。

參數(shù)表:聲明部分的"形參"有兩個值得注意的關(guān)健字:ByVaiflByRef

byval意為"值傳遞”,是將實參的值拷貝過來,API過程用的是“實參”的復(fù)制品,不會使原參

數(shù)產(chǎn)生變化。

byref意為“地址傳遞”,是將實參在內(nèi)存中的地址(指針)傳遞過來,如果在過程中改變了

該地址的內(nèi)容,那么會使原參數(shù)的內(nèi)容產(chǎn)生變化。

重大注意;字符串都是傳地址的。如果在形參聲明中用Byval,則傳遞字符串的首字符指針

(也就是地址),如果用BYREF,則傳遞指向字符串首字符指針的指針。

重大注意:在形參聲明中不注明byval和byref的情況下,缺省為byref,即指針傳遞。

在API訪問和參數(shù)類型聲明中,有一個很好的幫助工具,那就是API瀏覽器(在外接程序

管理器中),在其中查找所需API,并查找相應(yīng)類型聲明,然后用剪貼板復(fù)制到標(biāo)準(zhǔn)模塊的

聲明中,再自定義一個這種類型的變量,如:

PublicTypeMEMORYSTATUS數(shù)據(jù)類型聲明,從API游覽器中復(fù)制

dwLengthAsLong

dwMemoryLoadAsLong

dwTotalPhysAsLong

dwAvailPhysAsLong

dwTotalPageFileAsLong

dwAvailPageFileAsLong

dwTotalVirtualAsLong

dwAvailVirlualAsLong

EndType

PublicDeclareSubGlobalMemoryStatusLib"kerne132"_API聲明

(IpBufferAsMEMORYSTATUS)

PublicIxnAsMEMORYSTATUS定義一個這樣的變量,好在事件中調(diào)用時當(dāng)實參用。

調(diào)用API函數(shù)時,格式如下:

CALL函數(shù)名或過程名(實參)

CallGlobalMemoryStatus(lxn)

如果實參是一個“結(jié)構(gòu)類型”,引用時就用”實參.分量”來表示每一項返回值,如:

MsgBox(Ixn.dwAvailPageFile),,"a"

MsgBox(lxn.dwAvailPhys),,nbn

MsgBox(Ixn.dwAvailVirtual),,ucn

MsgBox(Ixn.dwLength),,"dn

MsgBox(Ixn.dwTotalPageFile),,ne"

MsgBox(Ixn.dwMemoryLoad),,"f*

MsgBox(Ixn.dwTotalPhys),,ngM這些a,b,c,d,e是標(biāo)題條中隨便起的。

用VB在硬盤上創(chuàng)建一個文件夾:

Mkdir語句。格式:

Mkdir”路徑及文件夾名"

mkdir"c:\windows\desktop\李新寧"在桌面上創(chuàng)建個名為"李新寧"的文件夾

又如:PrivateSubCommand2_Click()

MkDir"c:\windows\desktop\mydir"

EndSub

如果缺省路徑,則為本VB程序的當(dāng)前路徑,如:mkdir"mydir”,在當(dāng)前目錄下創(chuàng)建一個文件

夾,名為mydir.

用VB刪除一個文件夾(空文件夾):RmDir語句,格式:

rmdir"路徑及文件夾名"

用法與上面類似,此不再說明.如果一個文件夾內(nèi)有文件,那么,要先用KILL語句刪除文件,

再用rmdir刪除文件夾。格式:

kin”路徑及文件名"

在路徑及文件名中,省略路徑則指當(dāng)前路徑,并可用通配符"*“和"?”來刪除多個文件,如:

killtxt",將當(dāng)前目錄下的所有文本文件全部刪除。注意:KILL語句刪除的文件不會放

入回收站。

在調(diào)用函數(shù)或過程時,該函數(shù)或過程如果作為表達式,則其實參要括號,如果調(diào)用時是作為

語句,實參則不要括號。下面兩句是等價的。

SetWindowTextAForml.hwnd,"API函數(shù)修改標(biāo)題欄文字”一函數(shù)語句

CallSetWindowTextA(Forml.hwnd,"API函數(shù)修改標(biāo)題欄文字”)-函數(shù)為表達式

API調(diào)用格式中的lib"庫名"有一點要注意,如果不是調(diào)用Windows\system文件夾下的DLL

庫,則要指明路徑名,如:

publicdeclarefunctionIxnsdlllib"d:\student\mydll.dll"(byvalaasinteger,byvalbasinteger)as

long

在程序中窗體的運行位置是用一個叫做“窗體布局”的窗口來調(diào)整的,可否用另外的替代法,

而不用這個不精確的"窗體布局"窗口呢?

當(dāng)然可以,那就是在代碼中,例如要使窗體居于顯示器中央,有兩個新屬性變量,screen.width

和screen.height,分別表示本顯示器的屏幕寬度(screen.widlh)和顯示器高度(screen.height).

用屏幕寬度減去窗體F0RM1寬度再除以2,就可得到FORM的left左邊距了(也就是橫坐

標(biāo)吧),用屏幕高度減FORM1高度再除以2。就可得到FORM的top上邊距了(縱坐標(biāo)),

這樣便可居中,如下:

Form1.Left=(Screen.Width-Form1.Width)/2

Form1.Top=(Screen.Height-Form1.Height)/2

VB基本概念:對象-對象是具有某些特性的具體事物的抽象。

我在使用VB時遇到一個問題,我想用一個組框(frame1)將幾個按紐括在一起,可是當(dāng)組

框畫上去后卻會把按紐都覆蓋掉。按紐不見了(在framel圖層下面),怎么辦?什么辦法可

以決定幾個對象重合時,哪個在上,哪個在下?辦法如下:1,選中要改變圖層前后的對象;

2,在“格式”菜單中“順序”菜單項中選“置前”(在上面)或“置后"(在下面)即可。另外,在

代碼中也可以,用zorder方法,格式:

對象名.zorderO或1(0為置前,1為置后)

frame1.zorder1

重點筆記:事件

在WINDOWS中最主要的事件就是鼠標(biāo)事件,特別是其中的click單擊事件,此外還有

dblclick事件:雙擊事件,用法與click一樣。

mousedown事件:鼠標(biāo)按下時發(fā)生,有一個值得注意的參數(shù)button,它返回按下鼠標(biāo)左鍵還

是鼠標(biāo)右鍵,采用ifbutton=vbleftbutton…代碼來寫。

mouseup事件:鼠標(biāo)先按下然后抬起時發(fā)生,用法與mousedown一樣。

mousemove事件:鼠標(biāo)經(jīng)過時發(fā)生。

第二類的事件就是鍵盤事件,這類事件的掌握要加強。一個控件得到焦點后,就可以觸發(fā)這

一類事件,有以下幾種:

keydown事件:按下鍵盤上某個健時發(fā)生。但鍵盤上鍵那么多,需要用它返回的keycode參

數(shù)來指明按了哪個鍵,例下:

PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)

IfKeyCode=vbKeyBThen

Print"你按下了字母B"

ElselfKeyCode=vbKeyFlThen

Print”你按下了Fl鍵”

EndIf

EndSub

注:在keycode參數(shù)中,主鍵盤上的數(shù)字鍵和數(shù)字小鍵盤上的數(shù)字鍵是不同的,主鍵盤上用

vbkey0-vbkey9表示,而小鍵盤上的鍵用vbkeyNumpadO-vbkeyNumpad9來表示。

keyup事件:松開按鍵時發(fā)生,與keydown事件用法一樣。

keypress事件:按下某個鍵接著松開這個鍵時發(fā)生。注意,它的參數(shù)與keydown及keyup不

同,它是采用字符ASCII碼的方式,即用一個叫Keyascii的參數(shù)名,可以區(qū)分大小寫,但

有些功能鍵不能用。

ifkeyascii=O到255的一個整數(shù)Ihen...來寫,例如:

PrivateSubForm_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=120Then'120是小寫字母x的ASCII碼值

UnloadMe

ElseIfKeyAscii<48OrKeyAscii>57Then'數(shù)字鍵的ASCII碼在這個范圍內(nèi)

MsgBox("你輸入的不是數(shù)字)48

EndIf

EndSub

其他重要的事件有:

change事件:當(dāng)對象的內(nèi)容改變時發(fā)生。

gotlbcus事件:當(dāng)焦點從一個對象移動到當(dāng)前對象時,當(dāng)前對象發(fā)生gotfocus事件。

lostfocus事件:當(dāng)焦點從當(dāng)前對象移出時,當(dāng)前對象會發(fā)生lostfocus事件。

★keydown事件和keypress事件有什么實際運用上的差別?keydown多常用于功能鍵(如

F1),需要shift,Ctrl,Alt+字符鍵的"組合鍵",區(qū)分?jǐn)?shù)字小鍵盤和常規(guī)數(shù)字鍵等keypress所不

能的情況,keypress以ASCII碼來區(qū)分按鍵,側(cè)重"鍵的內(nèi)容",而keydown和keyup側(cè)重"

鍵的位置"。

我想在文本框中限制只能輸入數(shù)字,怎么辦最方便?可用keypress事件,如下:

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

IfKeyAscii<48OrKeyAscii>57Then

KeyAscii=0等于0表示沒按鍵,它在textl對象text屬性接入字符前產(chǎn)生,因

Beep此可限制輸入。

EndIf

EndSub

集合(collection):用來存儲類似數(shù)組的一組同類變量,它與數(shù)組不同的是,集合是一種對象,

它不僅可通過索引值來訪問其中的元素,還可通過關(guān)健字來訪問其中元素。聲明格式:

DIM(或PUBLIC)集合名asnewcollection

dimIxnasnewcollection

既然集合是一個對象,就用方法和屬性去操作它,有三個方法和一個屬性:

ADD方法:添加元素到集合對象中;格式:

集合名.add元素內(nèi)容,關(guān)健字,添加到…前,添加到…后(添加位置)

Ixn.add23,“李新寧",,"李冬冬"

上例表示在集合中“李冬冬“關(guān)健字所對應(yīng)元素后面添加"李新寧"為關(guān)健字的元素23(我是想

表示年紀(jì))。

REMOVE方法:刪除一個元素;

集合名.remove"關(guān)健字或索引位置"

Ixn.remove"李新寧"或Ixn.remove5(如果元素"23"的索引號為5)

索引值是VB自動給每個集合元素添加的,從第1個元素索引號為1開始。

ITEM方法:引用集合對象中的元素,可省略,格式:集合名.item(關(guān)健字)

省略為:集合名(關(guān)健字或索引位置)

x=lxn("李新寧”)x就等于23。

也可用索引位置,如x=lxn⑸(如果“李新寧"所對元素的索引為5),索引位置(其實就是

下標(biāo))最小從1開始。

COUNT屬性:返回集合中的元素個數(shù)。格式:集合名.count.如y=lxn.count,y就等于集合中

元素個數(shù)。

自定義過程:Private(或public,static)sub過程名(形參)

endsub

調(diào)用:Call過程名(實參)或過程名實參

自定義函數(shù):private(或public,static)function函數(shù)名(形參)as類型

函數(shù)名=值

endfunction

調(diào)用:函數(shù)名(實參)為一個確定值,

上面函數(shù)與過程區(qū)別是:函數(shù)一定有返回值,所以定義時要指明(返回值)類型,并在函數(shù)

過程中設(shè)定”函數(shù)名=值"來確定返回值。調(diào)用函數(shù)時如果也用CALL,則函數(shù)的返回值就失

去意義(這樣合是合法)。

★基本的類操作:類形象理解為“控件”即可,創(chuàng)建一個類,也

就是自己創(chuàng)建一個象工具箱中控件那樣的"新"控件。自己設(shè)置添加它的屬性,方法。只不過

自己發(fā)明的新控件沒有圖標(biāo),所有屬性,方法,事件只能在代碼中進行而已。

類是用來創(chuàng)建對象實例的模板。

1,在“工程"菜單中選"添加類模塊"。在屬性窗口修改它的"(名稱)”屬性為想要的名字,這

個名字將作為這個類(為好理解,叫成"新控件")的名字。

2,制作新控件屬性:在類模塊中通用部分(此時全都是)用Public聲明一群變量,要指明

具體類型,這些所有變量就成了新控件的屬性。就這么簡單。

3,制作新控件方法:在類模塊中建立新過程(用publicsub...endsub或publicfunction...end

function),這些過程名將作為新控件的方法名。在過程里編寫新控件功能的代碼。

4,編寫類模塊事件,類模塊事件只有initialize和terminate兩種。當(dāng)我們在程序中用”新控

件"創(chuàng)建一個對象時,在剛剛創(chuàng)建一剎那,觸發(fā)這里的initialize事件,這個事件可處理對象

實例創(chuàng)建時需要處理的初始化。

新控件的運用:如何使用自己新做的"控件"呢?因為它沒有在工具箱中的圖標(biāo),不可直按”

畫”到窗體上,而要完全在代碼中進行。

1,在通用部分聲明一個對象變量,使它指向“新控件"。如DimIxnAsclassl

classl是我自定的“新控件”名。注意:此時只是聲明變量Ixn為對象變量,但并沒有具體代

表哪個對象,要用SET語句來確定對象變量的值。用set…new…新建類模塊對象。

2,在FORMLOAD事件中創(chuàng)建一個"新控件"的對象,用SET…NEW語句,

set對象變量=優(yōu)\¥新控件

setlxn=newclass1

這時,對象變量名就成了創(chuàng)建的對象的名字(注:沒有NEW是普通的賦值,有NEW就是

新建對象)。

3,進行對象可進行的各種操作。如:lxn.condition=lrue

下面是自制一個“跑表”控件的例子。

A,類模塊中:

OptionExplicit

Publictimed]AsDate'這三個變量作為“跑表”類的屬性

PublicconditionAsBoolean'timectl為時間長度,condition為計時/停止?fàn)顟B(tài)

PublicstarttimeAsDate'starttime為基準(zhǔn)時間

PublicSubstart。'開始計時方法

condition=True

starttime=Timestarttime賦值為系統(tǒng)時鐘的當(dāng)前時間

EndSub

PublicSubstoptime。'停止計時.方法

DimIxnAsDate

condition=False

Ixn=Time-starttime時間差

timectl=timectl+Ixn進行多次調(diào)用該過程時累積時間長度

EndSub

PublicSubreset。'清0方法

condition=False

timectl=0

starttime=Time

EndSub

PrivateSubClass_Initialize()供新建實例時初始化

starttime=Time

timectl=Time-starttime

condition=False

EndSub

B,程序中:

DimmywatchAsmyclass聲明對象變量將指向myclass創(chuàng)建的實例

PrivateSubCommand1_Click()

Setmywatch=Newmyclass重新新建

Text1.Text=mywatch.timectl

EndSub

PrivateSubCommand2_Click()

SelectCasemywatch.condition

CaseFalse

mywatch.start

Text1.Text=uon”

CaseTrue

mywatch.stoptime

Text!.Text=mywatch.timectl

EndSelect

EndSub

PrivateSubForm_Load()

Setmywatch=Newmyclass新建對象

Text!.Text=mywatch.timectl

EndSub

★程序中的APP對象,它主要提供如本程序的標(biāo)題,版本信息,路徑等有時很必要的信息,

常用屬性有:

App.Title:返回本程序的標(biāo)題。

App.Path:返回本程序所在的路徑。與curdir不完全相同,curdir是指當(dāng)前路徑。如果1個程

序創(chuàng)建了快捷方式,則App.path和curdir就可能不同了。應(yīng)以App.path為準(zhǔn)。

App.EXEname:返回本程序不含擴展名的根名

如何在VB中控制關(guān)機?除了以前講到的exitwindowsex函數(shù)外,還有一種更簡單的方法,

只要在你需要的地方,比如按扭等等,在事件過程中加入

Shell"rundll32.exeuser.exe,exitwindows"就可以了。對WIN2000無效!

在VB中可打開控制面板,由用戶進行設(shè)置,打開主面板:在事件過程中寫

x=Shell("rundll32.exeshell32.dll,Control_RunDLL",1)

也可打開各個具體項目,如

x=Shell("rundll32.exeshell32.dll,Control_RunDLLmmsys.cpl",1)

打開的是控制面板中"多媒體"項。而

x=Shell("rundll32.exeshell32.dll,Control_RunDLLaccess.cpl?5",1)

打開的是“輔助選項"項目。而

x=Shell("rundll32.exeshell32.dll,Control_RunDLLdesk.cpl,,2",1)顯示的是"顯示器”項目(中

的“外觀“選項卡,注:各個選項卡由尾部參數(shù)決定,這里是2)。

在文本輸入時,我們可通過設(shè)置ASCII碼的chr(13)+chr(10)來使文本換行,而在VB程序中,

可用一個常數(shù)vbCrLf來代替這兩個ASCII碼表示換行,如:

textl.text="您如果需要的話"&chr(13)+chr(10)&"可以來找我"

可寫為:textl.text="您如果需要的話"&vbCrLf&"可以來找我"

關(guān)于在VB程序中用鍵盤的問題:1,很多控件運行時的使用都可以采用在其caption屬性中

寫"&快捷鍵”的方式指定鍵盤訪問鍵(如菜單,按紐,復(fù)選框,選項按紐等等)2,TAB

鍵常用來對各對象間的切換。

3,設(shè)計時改變選定對象的大?。篠hift+方向鍵;

設(shè)計時改變選定對象的位置:Ctrl+方向鍵。

在標(biāo)準(zhǔn)模塊中不能編寫某個窗體中

的對象的事件過程,事件過程只能在窗體模塊中編寫。

VB代碼窗口中的書簽:書簽可用來標(biāo)記代碼中的某些行,以便以后可以很容易地返回這些

行,書簽的切換或定位可在"編輯"菜單”書簽”項中進行。

VB代碼一行一般寫一條語句,也可一行寫多條語句,每條語句間用冒號:隔開即可

VB一條長語句可以分成幾行來寫,在需要分行的地方用"空格+下劃線(_)”即可。

在VB中我們一般用十進制數(shù),但有時用十六進制數(shù)或八進制數(shù)更方便,怎樣表示16進制

數(shù)呢:用前綴&H,怎樣表示八進制數(shù)呢,用前綴&0(&號和大寫字母0或數(shù)字0),如:

255=&o377=&hFF

我們可看到用16進制數(shù)表示的控件顏色值如:labell.backcolor=&HFF0000(藍色),通常情況

下,顏色值由六位數(shù)組成,顏色值=&Hbbggrr。前兩位數(shù)表示藍色成分,中間兩位表示綠色

成分,后面兩位表示紅色成分,范圍從16進制數(shù)的0-FF。

在多個模塊中有同名的公用變量(用public聲明的)時,引用時應(yīng)分別指出它的出處,形如:

modulel.lxn或module2.1xn或forml.lxn等。如果有同名的公用過程或公用函數(shù)等也是如此,

引用時指明出處。

變體類型數(shù)據(jù)的三個特殊值:EMPTY,NULL,ERRORo

當(dāng)一個變體變量未賦值時,其"值"就等于Empty.它不等于0或空字符串當(dāng)給一個變量賦

值后(如lxn=0),其empty值就消失,可重新賦予empty值,如:lxn=empty

可用IsEmpty函數(shù)檢測是否為empty值:ifIsEmpty(lxn)=truethenlxn=0

給一個變體變量賦予NULL值:常用于數(shù)據(jù)庫程序中表示未知數(shù)據(jù)或丟失的數(shù)據(jù),null的傳

播性:假如有一個變量值為NULL,將它放入一個表達式中,整個表達式值將變?yōu)镹ULL,

將它作為參數(shù)傳入函數(shù)中,函數(shù)將返回NULL,NULL能通過表達式"傳播",當(dāng)然前提是有

"變體"變量(為傳播載體)的基礎(chǔ)上。用IsNull函數(shù)檢測是否為NULL值,

如:ifIsNull(lxn)=falsethenlxn=Null

變體變量的ERROR值,指出己發(fā)生的過程中的錯誤狀態(tài)。不是指程序錯誤(我沒看懂)

在動態(tài)數(shù)組的使用中,用redim確定了數(shù)組的最大下標(biāo),如果還要改動這個值,而程序中若

重復(fù)執(zhí)行ReDim語句時,當(dāng)前存儲在數(shù)組中的值都會全部丟失,VB重新將所有數(shù)組元素

初始化,運行中怎樣改變數(shù)組的大小而又不丟失數(shù)據(jù)呢?用ReDimPreserve關(guān)健字,但要

注意,運行中只能改變數(shù)組最后一維的大小,可先用UBound函數(shù)取得數(shù)組

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論