其他常用的語句及控件_第1頁
其他常用的語句及控件_第2頁
其他常用的語句及控件_第3頁
其他常用的語句及控件_第4頁
其他常用的語句及控件_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第10章其他常用的語句及控件

本章主要內(nèi)<

其他一些常用語句

框架(Frame)

滾動條(ScrollBar),

鍵盤與鼠標事件

通用對話框(CommonDialog)^^^B

文件系統(tǒng)控件」Qr+

10.1其他常用語句

10.1.1強制顯式聲明變量語句(OptionExplicit)

避免因為寫錯變量名而導(dǎo)致錯誤

例如,交換變量a、b的值

Temp二a

a=b

b=Tmp,把Temp寫錯成

運行結(jié)果是使b的值為o

OptionExplicit^^l,模塊級聲明

DimaAsInteger,bAsInteger,TempAsInteger

???

Temp=a^^!

a=b^^|

b=Tmp^^|

運行時VB就會發(fā)出警告"Variablenotdefined〃(變量未定

義),只有把Tmp改為Temp后才恢復(fù)正常

10.1.2定義變量類型

格式:Def類型標志字母范圍

功能:在模塊級聲明段中定義變量(相應(yīng)數(shù)據(jù)類型)

示例:Deflntm-P

10.1.3自定義數(shù)據(jù)類型■

用戶可以利用

[Private|Public]Type

元素名lAs類型名

[元素名2As類型名2]?

EndType|

TypeRskRec^^l

編號AsString*3,用漢字表示字段名

姓名AsString*8

,性另UAsBoolean

出生日期AsDate

基本工資AsLong

EndType^^H

這里的Rsk_Rec是一個用戶定義的數(shù)據(jù)記錄類型,它由5個

元素(字段)組成

10.1.4定義枚舉類型

所謂“枚舉”是指將變量的值一一列舉出來,變量的值只限

于列舉出來的值

[Public|Private]Enum枚舉類型名

成員名1[=常數(shù)表達式]

成員名2上常數(shù)表達式]

EndEnum

例10.1應(yīng)用枚舉類型示例

輸入一個數(shù)字表示星期幾,判斷輸出是“休息日”還是“工

作日”

PrivateEnumweekdays'定義Weekdays為枚舉類型

Sun

Mon

Tue

Wed

Thu

Fri

Sat

EndEnum

平十斗

PrivateSubCommandl_Click()

DimmydayAsweekdays,定義Myday為Weekdays枚舉類型

myday=Val(InputBox("今天是星期幾(0?6)")),輸入0?6

Ifmyday<SunOrmyday>SatThen

MsgBox”輸入的星期數(shù)錯誤”

Else

Ifmyday=SunOrmyday=SatThen

MsgBox”休息日“

Else

MsgBox”工作日”

EndIf

EndIf

EndSub羊

10.1.5GoTo型控制

包括GoTo語句和On.??GoTo語句

1.GoTo語句■

語法格式:GoTo{行號標號}?

功能:改變程序的執(zhí)行順序,跳轉(zhuǎn)到程序中指定的行開始執(zhí)行

例10.2應(yīng)用GoTo語句示例

PrivateSubForm_Load()

Show

Print”整型數(shù)”

GoToLinel,跳轉(zhuǎn)到標號Linel指定的行

Print”單精度數(shù)”多

Linel:W

Print"字符串"¥

EndSub

2.On-GoTo語句

On.??GoTo語句用來實現(xiàn)分支選擇控制(類似于Select.??End

Select)

語法格式:On數(shù)值表達式GoTo{行號表|標號表}■

功能:根據(jù)“數(shù)值表達式”的值,控制轉(zhuǎn)移到幾個指定的語句

行中的一個語句行。

例如

OnKGoToLinel,Line2,Line3

執(zhí)行過程:將K四舍五入取整,如果其值為1,則轉(zhuǎn)移到Linel

標號行;如果為2,則轉(zhuǎn)移到Line2標號行;如果為3,則轉(zhuǎn)移到

Line3標號行。如果K的值等于0或大于3,則自動執(zhí)行本語句的

下一個語句V

10.1.6打印機輸出

把信息直接送往打印機

格式:Printer.Print[表達式表]

(l)Page屬性:設(shè)置當前頁號

格式:Printer.Page

(2)NewPage方法:實現(xiàn)換頁操作

格式:Printer.NewPage

(3)EndDoc方法:結(jié)束文件打印

您式:Printer.EndDoc

例10.3在打印機上打印文字“計算機程序設(shè)計”

PrivateSubCommandl_Click()

Printer.FontName="隸書”

Printer.FontSize=12

Printer.Print”計算機程序設(shè)計”,將文本放到Printer對象中

Printer.EndDoc,打印結(jié)束

EndSub

2.窗體輸出

先把要輸出的信息送到窗體上,再用PrintForm方法把

窗體上的內(nèi)容打印出來

格式:[窗體名.]PrintForm

功能:把窗體上的信息輸出到打印機

10.1.7閑置循環(huán)與DoEvents語句

VB只有在發(fā)生事件時才執(zhí)行相應(yīng)的事件過程,如果沒

有事件發(fā)生,則應(yīng)用程序處于“閑置”狀態(tài)

所謂閑置循環(huán),就是當程序處于閑置狀態(tài)時,用一個循

環(huán)來執(zhí)行某些操作

為使在閑置循環(huán)中也能響應(yīng)其他操作和事件,VB提供

[窗體號=]DoEvents[()].

功能:在閑置循環(huán)中,通過DoEvents語句可以把控制權(quán)

交給系統(tǒng)去處理所發(fā)生的事件

例10.4閑置循環(huán)和DoEvents應(yīng)用示例

(1)建立一個文本框和二個命令按鈕,兩個事件過程:

^^|PrivateSubCommandl_Click()

Textl.FontSize=Textl.FontSize+1

EndSub

PrivateSubCommand!_Click()

End

EndSub

(2)編寫SubMain過程

PrivateSubMAIN()

Forml.Show

DoWhileTrue,進入“閑置循環(huán)”

x=DoEvents,把控制權(quán)交給系統(tǒng)去處理所發(fā)生的事件

,否則不能處理其他事件

Forml.Textl.Text=Time

Loop

EndSub

(3)把SubMain設(shè)置為啟動對象

程序運行后,進入閑置循環(huán),此時將在文本框Textl中

不斷地顯示系統(tǒng)時間。

由于加入DoEvents函數(shù),則可以在執(zhí)行閑置循環(huán)過程

中執(zhí)行其他操作,如重設(shè)窗體的大小及最大化/最小化,還

能響應(yīng)命令按鈕Commandl和Command2的單擊事件等。

當其他操作完成后,又會回到閑置循環(huán)中繼續(xù)執(zhí)行

4

10.2框架(Frame)

框架的用途

作為容器放置其他控件對象,將這些控件對象分成可標

識的控件組;框架內(nèi)的所有控件將隨框架一起移動、顯示

2.常用屬性^■

Name屬性和Caption屬性

事件

可以響應(yīng)Click和

在應(yīng)用程序中一般不需要編寫有關(guān)框架的事件過程

例10.5控制文本的字體、字號及顏色

⑴創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性

在窗體上設(shè)置3個框架Framel、Frame2和Frame3

⑵編寫程序代碼

功能要求:在三個框架中分別選擇字體、字號

和顏色,單擊“確定”按鈕后,文本框中的文本相

應(yīng)屬性會發(fā)生變化

PrivateSubForm_Load()

Optionl.Value=True

Option3.Value=True

Option5.Value=True

Textl.FontName=''宋體''

Textl.FontSize=16

Textl.ForeColor=RGB(0,0,255)¥

EndSub1M

PrivateSubCommandl_Click()

IfOptionl.ValueThen

Text1.FontName=''宋體''

Else

Text1.FontName=''幼圓"

EndIf

IfOption3.ValueThen

Text1.FontSize=16

Else

Text1.FontSize=20

EndIf

IfOption5.ValueThen

Textl.ForeColor=RGB(0,0,255)

Else

Textl.ForeColor=RGBQ55,0,0)

EndIf

EndSub年

10.3滾動條

L滾動條的用途■

用程序和控件提供滾動功能,也可

水平滾動條(HScrollBar)和垂直滾動條(VScrollBar)

最小值(Min),最大值(Max);移動滾動塊時,代表的值隨之

改變

2.常用屬性

(l)Min、Max屬性:Min屬性的默認值為0,Max屬性的默認

值為32767^M

(2)Vahie屬性:設(shè)置滾動塊在滾動條中的位置值¥

(3)Smallchange最小變動值屬性人*

(4)LargeChange最大變動值屬性W

3.事件

滾動條控件可以識別io個事件,其中最常用的是

Scroll和Change^^^^H

(l)Scroll事件:當用鼠標拖動滾動塊時,即觸發(fā)

Scroll事件

(2)Change事件:當改變Value屬性值時,即觸發(fā)

Change事件

當釋放滾動塊、單擊滾動條內(nèi)空白處或滾動箭頭

時,Change重彳牛就會發(fā)生。

¥**

例10.6設(shè)計一個調(diào)色板應(yīng)用程序

建立三個水平滾動條作為紅、綠、藍三種基本顏色的輸

入工具,合成的顏色顯示在右邊的標簽中(圖10.17),用其背

景顏色屬性BackColor值的改變實現(xiàn)合成顏色的調(diào)色

■調(diào)色板應(yīng)用

紅jJ

綠jJ

藍,

說明:根據(jù)調(diào)色原理,基本顏色有紅、綠、藍三種,選

擇這三種顏色的不同比例,可以合成所需要的任意顏色

(1)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性

三個水平滾動條名稱從上至下分別為HScrolU、HScroll2、

HScrolB

其Max屬性均設(shè)置為255,Min屬性均設(shè)置為0,

SmallChangeM性設(shè)置為1,LargeChange屬性設(shè)置為10,

Value設(shè)置為0。

顯示合成顏色的標簽名為Labell

(2)編寫程序代碼

功能要求:通過操作(單擊或拖動)滾動條,直接修改

RGB設(shè)置,從而得到標簽背景所需的顏色

PrivateSubHScrolll_Change()

Labell.BackColor=RGB(HScrolll.Value,_

HScrolll.Value,HScrolB.Value)

EndSub

PrivateSubHScroll2_Change()

Labell.BackColor=RGB(HScrolll.Value,_

HScrolll.Value,HScrolB.Value)

EndSub

PrivateSubHScroll3_Change()

Labell.BackColor=RGB(HScrolll.Value9_

HScroll2.Value,HScrolB.Value)

EndSub

10.4圖形方法和圖形控件

4種圖形控件:PictureBox控件、Image控件、Shape控

件和Line控件;圖形方法

10.4.1坐標系

每個對象都定位于存放它的容器內(nèi)

每個容器都有一個坐標系,它包括坐標原點,X坐標軸和

y坐標軸,默認的坐標原點(0,0)在容器對象的左上角

默認單位為Twip(提),還可以使用磅、像素、厘米等單

窗體的實際可用的高度和寬度由ScaleHeightff

ScaleWidth屬性確定

CurrentX和CurrentY屬性

10.4.2圖形方法

使用Pset(畫點)、Line(畫線)、Circle(畫圓)等圖形方法,

可以方便地在窗體和圖片框上繪制簡單的圖形

1.Pset(畫點)方法■

格式:[對象名.]Pset[Step](x,y)[,顏色]■

功能:在對象的指定位置(x,y)上按選定的顏色畫點

參數(shù)Step指定(x,y)是相對于當前坐標點的坐標

示例:下列語句能在坐標位置(500,900)處畫一個紅點:

Pset(500,900),RGB(255,0,0)^H

CurrentX=100:CurrentY=100^^|

PsetStep(400,800),RGB(255,0,0)

3.Circle(畫圓)|_方__法_____

格式:

[對象名?]Circle[Step](x,y),半徑【,顏色,起點,終點,縱橫比]

功能:在對象上畫圓、橢圓或圓弧■

說明:(l)(x,y)是圓、橢圓或圓弧的中心坐標,“半徑”是圓、

(2)“起點”、“終點”(以弧度為單位)指定弧或扇形的起點

或終點位置,其范圍從?2元到23“起點”的默認值為0,“終

點”的默認值為

(3)縱橫比為圓的縱軸和橫軸的尺寸比。當縱橫比大于1時,

橢圓沿垂直方向拉長;當縱橫比小于1時,橢圓沿水平方向拉

長。縱橫比的默認值為1,將產(chǎn)生一個標準圓。

(4)可以省略中間的某個參數(shù),但不能省略分隔參數(shù)的逗號

例167在窗體上畫出一個扇形、圓、橢圓

PrivateSubForm_Load()

ConstPI=3.14159

Show

Circle(2500,1500),1200,vbBlue,-PI,-PI/2

CircleStep(-600,-600),600

CircleStep(O,0),600,,,,5/25

EndSub

10.4.3圖片框(PictureBox)

TO

圖片框(PictureBox)和圖像框(Image)都是用于顯示圖形。

圖片框可以作為其他控件的容器,還可以在圖片框上面放置

其他控件,這些控件隨圖片框的移動而移動

Picture屬性:用于設(shè)置在圖片框中要顯示的圖像文件

Picturel.Picture=LoadPicture("圖形文件名

Picturel.Picture=LoadPicture(),清除圖片

Align屬性:設(shè)置圖片框在窗體中的顯示方式

AutoSize屬性:確定圖片框如何與圖形相適應(yīng)

3.

⑴顯示和消除圖形:見Picture^^H

(3)用圖形方法在圖片框中畫圖形

可以使用Circle(畫圓)、Line(畫線)、Pset(畫點)等方

法在圖片框中畫圖形

一—▲一*

示例

PrivateSubForm_Load()^^H

Show

Picturel.Print”在圖片框內(nèi)寫字和畫圓“

Picturel.Circle(120051000),600,RGB(0,0,255)^H

Picturel.PSet(1200,1000),RGB(255,0,0)^H

EndSub^H

10.4.4像框(Image)

圖像框(Image)控件的作用與圖片框PictureBox控件相似,

但它只能用于顯示圖形,不能作為其他控件的容器

10.4.5Shape形狀控件

VB提供了畫圖形的基本工具,如Shape(形狀

控件)、Line(線控件)。

Shape控件和Line控件只用于表面裝飾,不支

持任何事件。

10.4.6Line直級控件

Line直線控件可用來在窗體、框架和圖片框中

繪制簡單的線段。

fl10.8設(shè)計一個走動的時鐘

(1)分析:本例分別以Second、Minite和Hour函數(shù)取得系統(tǒng)時

Time的秒、分和時數(shù),再利用計時器控件,按一定時間間隔把時

間數(shù)轉(zhuǎn)換為圖形指針位置和顯示出來

(2)創(chuàng)建應(yīng)用程序的用戶界面

計時器(Timerl),形狀控件(Shapel),三條線控件(LineS,

LineM,LineH),四個標簽(表示數(shù)字)

?工程1-Foral(Fora)SE?

(3)設(shè)置對象屬性

Timerl的Interval屬性為1000(1秒)

Shape1的Shape屬性為3-Circle(圓形),F(xiàn)illStyle屬性為0-

Solid(實心)

LineS,LineM,LineH的BorderWidth屬性為1,2,4

(4)編寫程序代碼

OptionExplicit

Constpi=3.14159

Privatelen_SAsSingle,len_MAsSingle,len_HAsSingle

PrivateSubForm_Load()

,先取各指針的長度

,秒針長度

len_S=Sqr((LineS.Y2-LineS.Yl)A2+(LineS.X2-LineS.Xl)A2)

",分針長度

len_M=Sqr((LineM.Y2-LineM.Yl)A2+(LineM.X2-LineM.Xl)A2)

,時針長度

len_H=Sqr((LineH.Y2-LineH.Yl)A2+(LineH.X2-LineH.Xl)A2)

CallTimerlTimer

EndSub

PrivateSubTimerl_Timer()定時器的定時事件過程

DimsAsSingle,mAsSingle,hAsSingle

Forml.Caption=Time

s=Second(Time)

m=Minute(Time)

h=Hour(Time)+m/60

LineS.X2=LineS.Xl+len_S*Sin(pi*s/30),繪制秒針

LineS.Y2=LineS.Yl-len_S*Cos(pi*s/30)

LineM.X2=LineM.Xl+len_M*Sin(pi*m/30),繪制分針

LineM.Y2=LineM.Yl-len_M*Cos(pi*m/30)

Ifh>=12Thenh=h-12

LineH.X2=LineH.Xl+len_H*Sin(pi*h/6),繪制時針

LineH.Y2=LineH.Yl-len_H*Cos(pi*h/6)

EndSub

計算指針位置的方法

s秒_K

60秒In

K=27rS/60=7rs/30

x2=xl+x=xl+L*Cos(7r/2-k)=xl+L*Sink

LineM.X2=LineM.Xl+Lens*Sin(pi*s/30)

K(s秒)

10.5菜單設(shè)計

應(yīng)用程序通過菜單為用戶提供一組命令

菜單一般分為兩種:即下拉式菜單和彈出式菜單

10.5.1下拉式菜單

下拉式菜單基本結(jié)構(gòu)包括:頂層菜單、菜單項和子菜單

訪問鍵快捷鍵子菜單提示符

Z.

頂層菜單文件⑥編輯@)視圖?幫助QP

■HL一一廣菜單項

菜單項新建Ctrl+N

打開.ra襠

復(fù)選標記文本文件

3保存Ctrl+S

另存為

分隔線

關(guān)閉?

10.5.2菜單編輯器

設(shè)計菜單的工具

啟動菜單編輯器的方法

菜單編輯器分為上、下兩部分,上半部分用來設(shè)置屬性,

下半部分是菜單顯示區(qū),用來顯示用戶輸入的菜單內(nèi)容。

“標題"(Caption)輸入框

供輸入標題,也會同時顯示在菜單顯示區(qū)。菜單項的訪問

鍵,用"(&字符)”格式

“名稱"(Name)輸入框

“索引”

“幫助上下文ID”輸入框

“協(xié)調(diào)位置”列表框

“復(fù)選”框

“可見”框】

¥叱

例10.9編一程序,進行兩個操作數(shù)的算術(shù)運算練習(xí)

設(shè)計步驟如下:■

(1)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性菜單欄向用戶

提供功能選擇,包括運算數(shù)的位數(shù),運算符類型和退出程序

菜單設(shè)計

各個菜單項名稱

(2)編寫程序代碼

功能要求

OptionExplicit,顯式聲明變量

DimsellAsInteger,sellAsString

DimrlAsLong

PrivateSubForm_Load()

sell=0,位數(shù)標記

sell=,運算標記

Randomize

EndSub

PrivateSubMnull_Click()

sell=1,設(shè)置位數(shù)標記

EndSub

PrivateSubMnul2_Click()

sell=10

EndSub

PrivateSubMnul3_Click()

sell=100

EndSub

PrivateSubMnu21_Click()

sell=''+,,,設(shè)置運算標記

EndSub

PrivateSubMnu22_Click()

sell='',,

EndSub

PrivateSubMnu23_Click()

s&2=

EndSub—*

PrivateSubCommandl_Click(),”命題”按鈕單擊事件

DimaAsLong,bAsLong

Ifsell=0Orsel2=MnThen

MsgBox”先選擇運算數(shù)的位數(shù)和運算類型”

ExitSub

EndIf

a=sell+Int(9*sell*Rnd),隨機生成指定位數(shù)的操作數(shù)

b=sell+Int(9*sell*Rnd)

Labell.Caption=Str(a)+sell+Str(b)+,組成算式

SelectCasesell,求運算結(jié)果H

Case

rl=a+b

Case”

rl=a-b

Case

rl=a*b

EndSelect

Text1.Text=

Textl.SetFocus

EndSub

PrivateSubCommand2_Click(),“答題”按鈕單擊事件

Dimr2AsLong

IfTextl.Text=nnThen

MsgBox”請輸入答案”

ExitSub

EndIf

r2=Val(Textl.Text),讀取用戶的答案

Ifrl=r2Then,判斷答案

LabeB.Caption=''正確''

Else

LabeB.Caption="錯誤”

EndIf

EndSub

PrivateSubMnu30_Click(),“退出”菜單命令

End

EndSub¥

10.5.4運行時改變菜單屬性

1.使菜單命令有效或無效?

所有的菜單項都具有Enabled屬性,當該屬性為True(默認

值)時,有效;若為Fake時,菜單項會變暗,菜單命令無效。

舉例:Mnu30.Enabled=False

[:hlIildl?

使用菜單項的Checked屬性,可以設(shè)置復(fù)選標記。

舉例:Mnu31.Checked=True

3.使菜單項不可見?[

舉例:Mnu30.Visible=True平

10.5.5彈出式菜單

標右鍵??梢愿鶕?jù)右

使用VB提供的菜單編輯器,把某個菜單設(shè)置成隱藏。

(1)使用菜單編輯器設(shè)計菜單

I

(2)設(shè)置頂層菜單項為不可見,即不選中菜單編輯器里的

“可見”選項或在屬性窗口中設(shè)定Visible屬性為False

I

出式菜單相關(guān)聯(lián)的MouseUp(釋放鼠標)事件過程。

[對象]PopupMenu菜單名[,位置常數(shù)][,橫坐標L縱坐標]]]

171I5IuLL171IU?DU,J仝則J_,JU也私不干以刀IAJAL不

(1)打開例10.9的應(yīng)用程序,選定窗體,然后在菜單編輯器中

將“位數(shù)”菜單標題的“可見”框中的“y”取消(即不選中)

(2)增加以下的MouseUp事件過程代碼:

PrivateSubForm_MouseUp(ButtonAsInteger,_

ShiftAsInteger,XAsSingle,YAsSingle)!

___IfButton=2Then,檢查是否右擊,擊左鍵為1

PopupMenumnulO^^H

End

EndSub

程序運行時,右擊窗體空白處,即會彈出快捷菜單,如圖

10.11所示

10.6工具欄和狀態(tài)欄

分別通過ActiveX控件ToolBar和StatusBar來實現(xiàn)

10.6.1ActiveX控件簡介

VB中使用的控件有三類:標準控件、ActiveX

控件和可插入對象(如Word文檔、Excel工作表等,可當

作控件使用)

ActiveX控件是一段可重復(fù)使用的程序代碼和數(shù)

據(jù)。由ActiveX技術(shù)創(chuàng)建的,可以作為VB工具箱的

擴充部分。

ActiveX控件以單獨的文件存在(.ocx)

10.6.2工具欄(ToolBar)

工具欄為用戶帶來比用菜單更為快速的操作

為窗體添加工具欄,應(yīng)使用工具條(ToolBar)控件

和圖彳象控侔列表(ImageList)控件(不是標準控件,

創(chuàng)建工具欄的大致步驟^■

⑴添加ToolBar控件和

(2)用

(3)創(chuàng)建ToolBar控件,并將ToolBar控件與ImageList控件

相關(guān)喉,創(chuàng)建Button對象

(4)編寫B(tài)utton的Click事件過程。

單擊工具欄控件時觸發(fā)Click事件,單擊工具欄上按鈕時

觸發(fā)ButtonClick事侔,笄返回一個Button參數(shù)(表明按下哪個

按鈕)

例10.11使用工具欄

在例10.9的基礎(chǔ)上,增加一個工具欄,使之能快

速提供“力口法”、“減法”和“乘法”運算類型

操作步驟:

(1)打開例10.9的應(yīng)用程序

(2)按照上述創(chuàng)建ImageList的方法,在窗體上建立

ImageListl控件,并從Windows98系統(tǒng)文件夾中取出圖片文件

Hlpcd.gif、Hipbell.gif和Hlpglobe.gif(本例采用這三個圖片作為

按鈕的圖形

(3)在窗體上建立ToolBarl控件,使之與ImageListl相關(guān)聯(lián),

然后在控件中添加“加法”、“減法”和“乘法”三個按鈕,

并分別取用ImageListl中的三個圖片。

(4)在原有程序代碼的基礎(chǔ)上,增加以下的ButtonClick事件

過程代碼¥

10.6.3狀態(tài)欄

狀態(tài)欄(StatusBar)通常位于窗體的底部,主要

用于顯示應(yīng)用程序的各種狀態(tài)信息。StatusBar控件

屬于ActiveX控件

StatusBar控件由若干個面板(Panel)組成,每一

個面板包含文本和圖片。StatusBar控體最多能分成

16個Panel對象

例10.12使用狀態(tài)欄

(1)打開例

(2)在窗體上創(chuàng)建StatusBarl^^^H

(3)右擊StatusBarl控件,從快捷菜單中選擇

“屬性”命令,系統(tǒng)彈出“屬性頁”對話框

(4)單擊“窗格”選項卡,屏幕顯示如圖10.16所

(5)設(shè)置第1個窗格(索弓I為1),“工具提示文本”

為“提示信息”,“樣式”為"0-sbrText”(即顯示

文本和位圖),其顯示內(nèi)容在運行時由程序代碼設(shè)置

(6)設(shè)置第2個窗格(索引為2),“工具提示文本”

為“大小寫狀態(tài)”,“樣式”為為-sbrCaps”(即顯

/l\寸牛

(7)設(shè)置第3個窗格(索引為3),其“工具提示文

本”為“時間”,“樣式”為"5?sbrTime”(即按

系統(tǒng)格式顯示時間)。

(8)要在運行中使第1個窗格顯示“正在運行

中”,可在Form_Load()事件過程中加入如下代

StatusBar1.Panels.Item(l)=''正在運行中

運行程序

10.7鍵盤與鼠標事件

窗體和大多數(shù)控件都能響應(yīng)鍵盤和鼠標事件

10.7.1鍵盤事件

有三種事件處理鍵盤操作,即KeyPress、KeyDown和

KeyUp事件

1.KeyPress事件

2.KeyDown事件:用戶按下鍵盤上某個鍵時觸發(fā)此事件

PrivateSubFormKeyDown(KeyCodeAsInteger,ShiftAsInteger)|

Print"按下鍵的代碼是";KeyCode^,

EndSub^^H

參數(shù)KeyCode是一個按下鍵的代碼(不區(qū)分大小寫)

3.KeyUp事件:用戶按下鍵盤上某個鍵后釋

放時觸發(fā)此事件。事件過程的語法格式類似于

KeyDown事件

KeyDown和KeyUp事件除了可以識別

KeyPress事件能識別的鍵,還可識別鍵盤上的

大多數(shù)鍵,如功能鍵、編輯鍵、定位鍵和數(shù)字

小鍵盤上的鍵

10.7.2鼠標事件

包括:Click、DblClick>MouseMove>MouseDown和

MouseUp等事件

1.鼠標事件過程格式

一后三種鼠標事件與Click、DblClick事件不同的是可以區(qū)分

鼠標的左、右、中鍵與Shift、CtrLAlt鍵。

鼠標事件過程的語法格式為:

PrivateSub對象名鼠標事件(ButtonAsInteger,ShiftAs

Integer,

XAsSingle,YAsSingle)

說明:(1)Button參數(shù)表示哪個鼠標鍵被按下或釋放。用0,1,2位分

別表示鼠標的左、右、中鍵,用1或0表示被按下或釋放

210位

(2)Shift參數(shù)表示當鼠標鍵被按下或釋婺時,Shift>CtrL

Alt鍵的按下或釋放狀態(tài)。用0、1、2位表示Shift、CtrLAlt

(3)X,Y表示鼠標指針的當前坐標位置

2.鼠標事件

⑴MouseDown和MouseUp^^^^H

當按下鼠標任意鍵時發(fā)生MouseDown事件,放開鼠標

鍵時發(fā)生MouseUp事件

PrivateSubFormMouseDown(ButtonAsInteger,

ShiftAsInteger,XAsSingle,YAsSingle)

Commandl.MoveX,Y*

EndSub¥

¥▼

(2)MouseMove事件

當移動鼠標時發(fā)生MouseMove事件。伴隨鼠標指

針在對象上移動,該事件會連續(xù)不斷地產(chǎn)生

(3)改變鼠標指針的形狀

通過MousePointer和Mouselcon屬性來設(shè)置鼠標指

針形狀

對象的MousePointer屬性用于設(shè)置鼠標指針的形狀

示例:Text1.MousePointer=2x

10.7.3拖放操作

“拖放”(DragDrop)就是使用鼠標將對象從一個地方拖動

到另一個地方再放下控件拖放是指運行時將控件拖放到新的

位置

它可以分解為兩種操作:一個是發(fā)生在源對象的“拖”

操作,另一個是發(fā)生在目標對象上的“放”操作

1.屬性

(l)DragMode屬性:用于設(shè)置拖放方式

為手動方式,通過代碼來設(shè)定拖

(2)DragIcon屬性:設(shè)置拖放操作時顯示的圖標,默認情況

下是將源對象的灰色輪廓作為拖動圖標

2.事件

(l)DragDrop事件:當一個完整的拖放動作完成時觸發(fā)。

它可用來控制在拖放操作完成時要進行的處理。其事件過程的

PrivateSub對象名_DragDrop(SourceAsControl,XAsSingle,YAsSingle)

Source表示正在被拖動的對象,X、Y表示鼠標指針在目

標對象中的坐標。

一(2)DragOver事件:當源對象被拖動到目標對象上,在目

標對象上就會觸發(fā)DragOver事件。本事件先于DragDrop事件。

其事件過程的語法格式為:

PrivateSub對象名_DragOver(SourceAsControl,XAsSingle,_

YAsSingle,StateAsInteger)^H

State參數(shù):0表示進入,即源對象正進入目標對象內(nèi);

1表示離開,即源對象正在離開目標對象;

2表示跨越,即源對象在目標范圍內(nèi)移動位置

3.方法

常用的有Drag方法。

對象名.Drag[動作]■

“動作”取值為0時,表示取消拖動操作;取值為1時,啟

動拖動操作;取值為2時,結(jié)束拖動操作

例10.13采用自動方式,實現(xiàn)文本框的拖動操作

在窗體上建立一個文本框TextL其DragMode屬性值設(shè)置

為1(自動方式),程序代碼:

PrivateSubForm_DragDrop(SourceAsControl,XAsSingle,YAsSingle)

Source.MoveX,Y'移動對象位置

EndSub

例10.14采用手動方式,實現(xiàn)文本框的拖動操作

在窗體上建立一個文本框Textl,其DragMode屬性值設(shè)置

為0(手動方式),程序代碼:

PrivateSubForm_DragDrop(SourceAsControl,XAsSingle,YAsSingle)

Source.MoveX,Y'移動對象位置

EndSub

PrivateSubTextl_MouseDown(ButtonAsInteger,ShiftAsInteger,

XAsSingle,YAsSingle)

Text1.Drag1'啟動“拖動”操作

EndSub

PrivateSubTextl_MouseUp(ButtonAsInteger,ShiftAsInteger,

XAsSingle,YAsSingle)

Text1.Drag2'結(jié)束“拖動”操作

EndSub

例10.15把文本框中的選定文本,拖放到圖

片框內(nèi)顯示出來

(1)在窗體上建立一^個圖片框(Picturel)和一^個文本框

(Text。文本框的Text屬性為空

(2)編寫程序代碼

功能要求:程序運行后,用戶在文本框內(nèi)輸入文本和用鼠

標選定(通過拖動)文本,然后按住鼠標左鍵后把文本框拖放到

圖片框內(nèi),即可把已選定的文本顯示在圖片框內(nèi)w

程序代碼:

PrivateSubForm_Load()^^|

Textl.DragMode=0‘置手動方式■

EndSub^^H

PrivateSubPicturel_DragDrop(SourceAsControl,XAsSingle,YAsSingle)

Picturel.CurrentX=X'以鼠標位置為當前顯示起始位置

Picturel.CurrentY=

Picturel.PrintTextl.SelText'在圖片框中顯示文本框中的選定內(nèi)容

EndSub^^l

PrivateSubTextl_MouseMove(ButtonAsInteger,ShiftAsInteger,

XAsSingle,YAsSingle)

IfButton=1ThenButton為

'置自動方AS¥

Textl.DragMode=1

End

EndSub*

10.8對話框

對話框(DialogBox)是應(yīng)用程序與用戶進行交互的

主要途徑。三種對話框:

⑴預(yù)定義對話框(使用函數(shù)InputBox和MsgBox來實

現(xiàn))■

(2)通用對話框■

(3)用戶自定義對話框

10.8.1通用對話框

通用對話框是一種ActiveX控件,利用它能夠很容易地創(chuàng)

建下列六種標準對話框:打開(Open),另存為(SaveAs),顏色

(Color),字體(Font),打印機(Printer)和幫助(Help)對話框

1.添加通用對話框控件

在使用之前,應(yīng)選擇“工程”菜單中的“部件”命令先將

其添加到工具箱中

當程序運行時,通用對話框是不可見的

通用對話框不僅本身具有一組屬性,而且由它產(chǎn)生的各種標

準對話框也擁有許多特定屬性。

屬性設(shè)置可以在屬性窗口或程序代碼中進行,也可以通過

“屬性頁”對話框來設(shè)置

2.屬性頁

3.通用對話框的基本屬性和方法

(2)Action屬性:該屬性直接決定打開哪種對話框

對話框類型Action屬性值

無對話框0

打開”對話框ShowOpen

“另存為”對話框2ShowSaveB

“顏色”對話框3ShowColorJ

“字體”對話框4ShowFontH

“打印”對話框5ShowPrinterl

“幫助”對話框6ShowHelp

例如,利用通用對話框CommonDialogl產(chǎn)生一個“打開”

話框,可以執(zhí)行下列語句:

CommonDialogl.Action=l^^|

或CommonDialogl.ShowOpen*

(3)DialogTitle屬性:該屬性用于設(shè)置對話框的標題

(4)ConcelEiror屬性:該屬性表示用戶在使用對話框進行對話

時,單擊“取消”按鈕是否產(chǎn)生錯誤信息

(5)通用對話框的方法

4.“打開”對話框

在程序中將通用對話框的Action屬性設(shè)置為1,或用

ShowOpen方法打開,則彈出“打開文件”對話框

“打開”對話框的屬性:

FileName>FileTitle>Filter>Filterindex>IniDir

■¥

¥求

例10.16建立一個“打開文件”的對話框

在窗體上添加一個通用對話框和一個“打開”命令按鈕,

當單擊“打開”按鈕時,就會彈出一個“打開文件”的對話

?.*'i.J

打開?"IBOiI

」■■■

|打開文件EIE3

搜尋(X):卜今我的文檔3國囪宣面國

]Izrweb

1WvDownloads口

KIMvPictures

2jMyWebs勒

^1mvdir回'

文件名?:打開9|

文件類型(X)取消

⑴把CommonDialog控件添加到工具箱中。然后在窗體上添

加CommonDialog控件,其默認名稱為CommonDialoglH

(2)在窗體上添加一個命令按鈕CommandL其Caption屬性為

(3)“打開”命令按鈕Commandl的

PrivateSubCommandl_Click()

CommonDialog1.DialogTitle=”打開文件“'設(shè)置文件過濾器

CommonDialogl.Filter="全部文件文本文件

CommonDialog1.InitDir=nC:\mydocuments”,設(shè)置默認文件夾

CommonDialogl.ShowOpen,顯示“打開”對話框

EndSub

其中,設(shè)置文件過濾器(Filter)屬性的參數(shù)格式如下:

描述符1I過濾符1I描述符2I過濾符

程序運行后,單擊“打開”按鈕即彈出如圖所示的對話框

從控件的FileName屬性中獲取選定的路徑及文件名

5■■■??

6.“顏色”對話框

7.“字體”對話框

例10.17“字體”對話框應(yīng)用示例

在文本框中輸入一段文字,單擊命令按鈕后,通

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論