![其他常用的語(yǔ)句及控件_第1頁(yè)](http://file4.renrendoc.com/view14/M03/0B/39/wKhkGWclmLuAQji4AAGTvFblaBo927.jpg)
![其他常用的語(yǔ)句及控件_第2頁(yè)](http://file4.renrendoc.com/view14/M03/0B/39/wKhkGWclmLuAQji4AAGTvFblaBo9272.jpg)
![其他常用的語(yǔ)句及控件_第3頁(yè)](http://file4.renrendoc.com/view14/M03/0B/39/wKhkGWclmLuAQji4AAGTvFblaBo9273.jpg)
![其他常用的語(yǔ)句及控件_第4頁(yè)](http://file4.renrendoc.com/view14/M03/0B/39/wKhkGWclmLuAQji4AAGTvFblaBo9274.jpg)
![其他常用的語(yǔ)句及控件_第5頁(yè)](http://file4.renrendoc.com/view14/M03/0B/39/wKhkGWclmLuAQji4AAGTvFblaBo9275.jpg)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第10章其他常用的語(yǔ)句及控件
本章主要內(nèi)<
其他一些常用語(yǔ)句
框架(Frame)
滾動(dòng)條(ScrollBar),
鍵盤(pán)與鼠標(biāo)事件
通用對(duì)話框(CommonDialog)^^^B
文件系統(tǒng)控件」Qr+
10.1其他常用語(yǔ)句
10.1.1強(qiáng)制顯式聲明變量語(yǔ)句(OptionExplicit)
避免因?yàn)閷?xiě)錯(cuò)變量名而導(dǎo)致錯(cuò)誤
例如,交換變量a、b的值
Temp二a
a=b
b=Tmp,把Temp寫(xiě)錯(cuò)成
運(yùn)行結(jié)果是使b的值為o
OptionExplicit^^l,模塊級(jí)聲明
DimaAsInteger,bAsInteger,TempAsInteger
???
Temp=a^^!
a=b^^|
b=Tmp^^|
運(yùn)行時(shí)VB就會(huì)發(fā)出警告"Variablenotdefined〃(變量未定
義),只有把Tmp改為T(mén)emp后才恢復(fù)正常
10.1.2定義變量類(lèi)型
格式:Def類(lèi)型標(biāo)志字母范圍
功能:在模塊級(jí)聲明段中定義變量(相應(yīng)數(shù)據(jù)類(lèi)型)
示例:Deflntm-P
10.1.3自定義數(shù)據(jù)類(lèi)型■
用戶(hù)可以利用
[Private|Public]Type
元素名lAs類(lèi)型名
[元素名2As類(lèi)型名2]?
EndType|
TypeRskRec^^l
編號(hào)AsString*3,用漢字表示字段名
姓名AsString*8
,性另UAsBoolean
出生日期AsDate
基本工資AsLong
EndType^^H
這里的Rsk_Rec是一個(gè)用戶(hù)定義的數(shù)據(jù)記錄類(lèi)型,它由5個(gè)
元素(字段)組成
¥
10.1.4定義枚舉類(lèi)型
所謂“枚舉”是指將變量的值一一列舉出來(lái),變量的值只限
于列舉出來(lái)的值
[Public|Private]Enum枚舉類(lèi)型名
成員名1[=常數(shù)表達(dá)式]
成員名2上常數(shù)表達(dá)式]
EndEnum
例10.1應(yīng)用枚舉類(lèi)型示例
輸入一個(gè)數(shù)字表示星期幾,判斷輸出是“休息日”還是“工
作日”
PrivateEnumweekdays'定義Weekdays為枚舉類(lèi)型
Sun
Mon
Tue
Wed
Thu
Fri
Sat
EndEnum
平十斗
PrivateSubCommandl_Click()
DimmydayAsweekdays,定義Myday為Weekdays枚舉類(lèi)型
myday=Val(InputBox("今天是星期幾(0?6)")),輸入0?6
Ifmyday<SunOrmyday>SatThen
MsgBox”輸入的星期數(shù)錯(cuò)誤”
Else
Ifmyday=SunOrmyday=SatThen
MsgBox”休息日“
Else
MsgBox”工作日”
EndIf
EndIf
EndSub羊
10.1.5GoTo型控制
包括GoTo語(yǔ)句和On.??GoTo語(yǔ)句
1.GoTo語(yǔ)句■
語(yǔ)法格式:GoTo{行號(hào)標(biāo)號(hào)}?
功能:改變程序的執(zhí)行順序,跳轉(zhuǎn)到程序中指定的行開(kāi)始執(zhí)行
例10.2應(yīng)用GoTo語(yǔ)句示例
PrivateSubForm_Load()
Show
Print”整型數(shù)”
GoToLinel,跳轉(zhuǎn)到標(biāo)號(hào)Linel指定的行
Print”單精度數(shù)”多
Linel:W
Print"字符串"¥
EndSub
2.On-GoTo語(yǔ)句
On.??GoTo語(yǔ)句用來(lái)實(shí)現(xiàn)分支選擇控制(類(lèi)似于Select.??End
Select)
語(yǔ)法格式:On數(shù)值表達(dá)式GoTo{行號(hào)表|標(biāo)號(hào)表}■
功能:根據(jù)“數(shù)值表達(dá)式”的值,控制轉(zhuǎn)移到幾個(gè)指定的語(yǔ)句
行中的一個(gè)語(yǔ)句行。
例如
OnKGoToLinel,Line2,Line3
執(zhí)行過(guò)程:將K四舍五入取整,如果其值為1,則轉(zhuǎn)移到Linel
標(biāo)號(hào)行;如果為2,則轉(zhuǎn)移到Line2標(biāo)號(hào)行;如果為3,則轉(zhuǎn)移到
Line3標(biāo)號(hào)行。如果K的值等于0或大于3,則自動(dòng)執(zhí)行本語(yǔ)句的
下一個(gè)語(yǔ)句V
10.1.6打印機(jī)輸出
把信息直接送往打印機(jī)
格式:Printer.Print[表達(dá)式表]
(l)Page屬性:設(shè)置當(dāng)前頁(yè)號(hào)
格式:Printer.Page
(2)NewPage方法:實(shí)現(xiàn)換頁(yè)操作
格式:Printer.NewPage
(3)EndDoc方法:結(jié)束文件打印
您式:Printer.EndDoc
例10.3在打印機(jī)上打印文字“計(jì)算機(jī)程序設(shè)計(jì)”
PrivateSubCommandl_Click()
Printer.FontName="隸書(shū)”
Printer.FontSize=12
Printer.Print”計(jì)算機(jī)程序設(shè)計(jì)”,將文本放到Printer對(duì)象中
Printer.EndDoc,打印結(jié)束
EndSub
2.窗體輸出
先把要輸出的信息送到窗體上,再用PrintForm方法把
窗體上的內(nèi)容打印出來(lái)
格式:[窗體名.]PrintForm
功能:把窗體上的信息輸出到打印機(jī)
¥
10.1.7閑置循環(huán)與DoEvents語(yǔ)句
VB只有在發(fā)生事件時(shí)才執(zhí)行相應(yīng)的事件過(guò)程,如果沒(méi)
有事件發(fā)生,則應(yīng)用程序處于“閑置”狀態(tài)
所謂閑置循環(huán),就是當(dāng)程序處于閑置狀態(tài)時(shí),用一個(gè)循
環(huán)來(lái)執(zhí)行某些操作
為使在閑置循環(huán)中也能響應(yīng)其他操作和事件,VB提供
[窗體號(hào)=]DoEvents[()].
功能:在閑置循環(huán)中,通過(guò)DoEvents語(yǔ)句可以把控制權(quán)
交給系統(tǒng)去處理所發(fā)生的事件
例10.4閑置循環(huán)和DoEvents應(yīng)用示例
(1)建立一個(gè)文本框和二個(gè)命令按鈕,兩個(gè)事件過(guò)程:
^^|PrivateSubCommandl_Click()
Textl.FontSize=Textl.FontSize+1
EndSub
PrivateSubCommand!_Click()
End
EndSub
(2)編寫(xiě)SubMain過(guò)程
PrivateSubMAIN()
Forml.Show
DoWhileTrue,進(jìn)入“閑置循環(huán)”
x=DoEvents,把控制權(quán)交給系統(tǒng)去處理所發(fā)生的事件
,否則不能處理其他事件
Forml.Textl.Text=Time
Loop
EndSub
(3)把SubMain設(shè)置為啟動(dòng)對(duì)象
程序運(yùn)行后,進(jìn)入閑置循環(huán),此時(shí)將在文本框Textl中
不斷地顯示系統(tǒng)時(shí)間。
由于加入DoEvents函數(shù),則可以在執(zhí)行閑置循環(huán)過(guò)程
中執(zhí)行其他操作,如重設(shè)窗體的大小及最大化/最小化,還
能響應(yīng)命令按鈕Commandl和Command2的單擊事件等。
當(dāng)其他操作完成后,又會(huì)回到閑置循環(huán)中繼續(xù)執(zhí)行
4
10.2框架(Frame)
框架的用途
作為容器放置其他控件對(duì)象,將這些控件對(duì)象分成可標(biāo)
識(shí)的控件組;框架內(nèi)的所有控件將隨框架一起移動(dòng)、顯示
2.常用屬性^■
Name屬性和Caption屬性
事件
可以響應(yīng)Click和
在應(yīng)用程序中一般不需要編寫(xiě)有關(guān)框架的事件過(guò)程
例10.5控制文本的字體、字號(hào)及顏色
⑴創(chuàng)建應(yīng)用程序的用戶(hù)界面和設(shè)置對(duì)象屬性
在窗體上設(shè)置3個(gè)框架Framel、Frame2和Frame3
⑵編寫(xiě)程序代碼
功能要求:在三個(gè)框架中分別選擇字體、字號(hào)
和顏色,單擊“確定”按鈕后,文本框中的文本相
應(yīng)屬性會(huì)發(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滾動(dòng)條
L滾動(dòng)條的用途■
用程序和控件提供滾動(dòng)功能,也可
水平滾動(dòng)條(HScrollBar)和垂直滾動(dòng)條(VScrollBar)
最小值(Min),最大值(Max);移動(dòng)滾動(dòng)塊時(shí),代表的值隨之
改變
2.常用屬性
(l)Min、Max屬性:Min屬性的默認(rèn)值為0,Max屬性的默認(rèn)
值為32767^M
(2)Vahie屬性:設(shè)置滾動(dòng)塊在滾動(dòng)條中的位置值¥
(3)Smallchange最小變動(dòng)值屬性人*
(4)LargeChange最大變動(dòng)值屬性W
3.事件
滾動(dòng)條控件可以識(shí)別io個(gè)事件,其中最常用的是
Scroll和Change^^^^H
(l)Scroll事件:當(dāng)用鼠標(biāo)拖動(dòng)滾動(dòng)塊時(shí),即觸發(fā)
Scroll事件
(2)Change事件:當(dāng)改變Value屬性值時(shí),即觸發(fā)
Change事件
當(dāng)釋放滾動(dòng)塊、單擊滾動(dòng)條內(nèi)空白處或滾動(dòng)箭頭
時(shí),Change重彳牛就會(huì)發(fā)生。
¥**
例10.6設(shè)計(jì)一個(gè)調(diào)色板應(yīng)用程序
建立三個(gè)水平滾動(dòng)條作為紅、綠、藍(lán)三種基本顏色的輸
入工具,合成的顏色顯示在右邊的標(biāo)簽中(圖10.17),用其背
景顏色屬性BackColor值的改變實(shí)現(xiàn)合成顏色的調(diào)色
■調(diào)色板應(yīng)用
紅jJ
綠jJ
藍(lán),
說(shuō)明:根據(jù)調(diào)色原理,基本顏色有紅、綠、藍(lán)三種,選
擇這三種顏色的不同比例,可以合成所需要的任意顏色
(1)創(chuàng)建應(yīng)用程序的用戶(hù)界面和設(shè)置對(duì)象屬性
三個(gè)水平滾動(dòng)條名稱(chēng)從上至下分別為HScrolU、HScroll2、
HScrolB
其Max屬性均設(shè)置為255,Min屬性均設(shè)置為0,
SmallChangeM性設(shè)置為1,LargeChange屬性設(shè)置為10,
Value設(shè)置為0。
顯示合成顏色的標(biāo)簽名為L(zhǎng)abell
(2)編寫(xiě)程序代碼
功能要求:通過(guò)操作(單擊或拖動(dòng))滾動(dòng)條,直接修改
RGB設(shè)置,從而得到標(biāo)簽背景所需的顏色
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坐標(biāo)系
每個(gè)對(duì)象都定位于存放它的容器內(nèi)
每個(gè)容器都有一個(gè)坐標(biāo)系,它包括坐標(biāo)原點(diǎn),X坐標(biāo)軸和
y坐標(biāo)軸,默認(rèn)的坐標(biāo)原點(diǎn)(0,0)在容器對(duì)象的左上角
默認(rèn)單位為T(mén)wip(提),還可以使用磅、像素、厘米等單
位
窗體的實(shí)際可用的高度和寬度由ScaleHeightff
ScaleWidth屬性確定
CurrentX和CurrentY屬性
10.4.2圖形方法
使用Pset(畫(huà)點(diǎn))、Line(畫(huà)線)、Circle(畫(huà)圓)等圖形方法,
可以方便地在窗體和圖片框上繪制簡(jiǎn)單的圖形
1.Pset(畫(huà)點(diǎn))方法■
格式:[對(duì)象名.]Pset[Step](x,y)[,顏色]■
功能:在對(duì)象的指定位置(x,y)上按選定的顏色畫(huà)點(diǎn)
參數(shù)Step指定(x,y)是相對(duì)于當(dāng)前坐標(biāo)點(diǎn)的坐標(biāo)
示例:下列語(yǔ)句能在坐標(biāo)位置(500,900)處畫(huà)一個(gè)紅點(diǎn):
Pset(500,900),RGB(255,0,0)^H
CurrentX=100:CurrentY=100^^|
PsetStep(400,800),RGB(255,0,0)
3.Circle(畫(huà)圓)|_方__法_____
格式:
[對(duì)象名?]Circle[Step](x,y),半徑【,顏色,起點(diǎn),終點(diǎn),縱橫比]
功能:在對(duì)象上畫(huà)圓、橢圓或圓弧■
說(shuō)明:(l)(x,y)是圓、橢圓或圓弧的中心坐標(biāo),“半徑”是圓、
(2)“起點(diǎn)”、“終點(diǎn)”(以弧度為單位)指定弧或扇形的起點(diǎn)
或終點(diǎn)位置,其范圍從?2元到23“起點(diǎn)”的默認(rèn)值為0,“終
點(diǎn)”的默認(rèn)值為
(3)縱橫比為圓的縱軸和橫軸的尺寸比。當(dāng)縱橫比大于1時(shí),
橢圓沿垂直方向拉長(zhǎng);當(dāng)縱橫比小于1時(shí),橢圓沿水平方向拉
長(zhǎng)??v橫比的默認(rèn)值為1,將產(chǎn)生一個(gè)標(biāo)準(zhǔn)圓。
(4)可以省略中間的某個(gè)參數(shù),但不能省略分隔參數(shù)的逗號(hào)
例167在窗體上畫(huà)出一個(gè)扇形、圓、橢圓
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)都是用于顯示圖形。
圖片框可以作為其他控件的容器,還可以在圖片框上面放置
其他控件,這些控件隨圖片框的移動(dòng)而移動(dòng)
Picture屬性:用于設(shè)置在圖片框中要顯示的圖像文件
Picturel.Picture=LoadPicture("圖形文件名
Picturel.Picture=LoadPicture(),清除圖片
Align屬性:設(shè)置圖片框在窗體中的顯示方式
AutoSize屬性:確定圖片框如何與圖形相適應(yīng)
3.
⑴顯示和消除圖形:見(jiàn)Picture^^H
(3)用圖形方法在圖片框中畫(huà)圖形
可以使用Circle(畫(huà)圓)、Line(畫(huà)線)、Pset(畫(huà)點(diǎn))等方
法在圖片框中畫(huà)圖形
一—▲一*
示例
PrivateSubForm_Load()^^H
Show
Picturel.Print”在圖片框內(nèi)寫(xiě)字和畫(huà)圓“
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提供了畫(huà)圖形的基本工具,如Shape(形狀
控件)、Line(線控件)。
Shape控件和Line控件只用于表面裝飾,不支
持任何事件。
10.4.6Line直級(jí)控件
Line直線控件可用來(lái)在窗體、框架和圖片框中
繪制簡(jiǎn)單的線段。
fl10.8設(shè)計(jì)一個(gè)走動(dòng)的時(shí)鐘
(1)分析:本例分別以Second、Minite和Hour函數(shù)取得系統(tǒng)時(shí)
間
Time的秒、分和時(shí)數(shù),再利用計(jì)時(shí)器控件,按一定時(shí)間間隔把時(shí)
間數(shù)轉(zhuǎn)換為圖形指針位置和顯示出來(lái)
(2)創(chuàng)建應(yīng)用程序的用戶(hù)界面
計(jì)時(shí)器(Timerl),形狀控件(Shapel),三條線控件(LineS,
LineM,LineH),四個(gè)標(biāo)簽(表示數(shù)字)
?工程1-Foral(Fora)SE?
(3)設(shè)置對(duì)象屬性
Timerl的Interval屬性為1000(1秒)
Shape1的Shape屬性為3-Circle(圓形),F(xiàn)illStyle屬性為0-
Solid(實(shí)心)
LineS,LineM,LineH的BorderWidth屬性為1,2,4
(4)編寫(xiě)程序代碼
OptionExplicit
Constpi=3.14159
Privatelen_SAsSingle,len_MAsSingle,len_HAsSingle
PrivateSubForm_Load()
,先取各指針的長(zhǎng)度
,秒針長(zhǎng)度
len_S=Sqr((LineS.Y2-LineS.Yl)A2+(LineS.X2-LineS.Xl)A2)
",分針長(zhǎng)度
len_M=Sqr((LineM.Y2-LineM.Yl)A2+(LineM.X2-LineM.Xl)A2)
,時(shí)針長(zhǎng)度
len_H=Sqr((LineH.Y2-LineH.Yl)A2+(LineH.X2-LineH.Xl)A2)
CallTimerlTimer
EndSub
PrivateSubTimerl_Timer()定時(shí)器的定時(shí)事件過(guò)程
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),繪制時(shí)針
LineH.Y2=LineH.Yl-len_H*Cos(pi*h/6)
EndSub
計(jì)算指針位置的方法
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è)計(jì)
應(yīng)用程序通過(guò)菜單為用戶(hù)提供一組命令
菜單一般分為兩種:即下拉式菜單和彈出式菜單
10.5.1下拉式菜單
下拉式菜單基本結(jié)構(gòu)包括:頂層菜單、菜單項(xiàng)和子菜單
訪問(wèn)鍵快捷鍵子菜單提示符
Z.
頂層菜單文件⑥編輯@)視圖?幫助QP
■HL一一廣菜單項(xiàng)
菜單項(xiàng)新建Ctrl+N
打開(kāi).ra襠
復(fù)選標(biāo)記文本文件
3保存Ctrl+S
另存為
分隔線
關(guān)閉?
10.5.2菜單編輯器
設(shè)計(jì)菜單的工具
啟動(dòng)菜單編輯器的方法
菜單編輯器分為上、下兩部分,上半部分用來(lái)設(shè)置屬性,
下半部分是菜單顯示區(qū),用來(lái)顯示用戶(hù)輸入的菜單內(nèi)容。
“標(biāo)題"(Caption)輸入框
供輸入標(biāo)題,也會(huì)同時(shí)顯示在菜單顯示區(qū)。菜單項(xiàng)的訪問(wèn)
鍵,用"(&字符)”格式
“名稱(chēng)"(Name)輸入框
“索引”
“幫助上下文ID”輸入框
“協(xié)調(diào)位置”列表框
“復(fù)選”框
“可見(jiàn)”框】
¥叱
例10.9編一程序,進(jìn)行兩個(gè)操作數(shù)的算術(shù)運(yùn)算練習(xí)
設(shè)計(jì)步驟如下:■
(1)創(chuàng)建應(yīng)用程序的用戶(hù)界面和設(shè)置對(duì)象屬性菜單欄向用戶(hù)
提供功能選擇,包括運(yùn)算數(shù)的位數(shù),運(yùn)算符類(lèi)型和退出程序
菜單設(shè)計(jì)
各個(gè)菜單項(xiàng)名稱(chēng)
(2)編寫(xiě)程序代碼
功能要求
OptionExplicit,顯式聲明變量
DimsellAsInteger,sellAsString
DimrlAsLong
PrivateSubForm_Load()
sell=0,位數(shù)標(biāo)記
sell=,運(yùn)算標(biāo)記
Randomize
EndSub
PrivateSubMnull_Click()
sell=1,設(shè)置位數(shù)標(biāo)記
EndSub
PrivateSubMnul2_Click()
sell=10
EndSub
PrivateSubMnul3_Click()
sell=100
EndSub
PrivateSubMnu21_Click()
sell=''+,,,設(shè)置運(yùn)算標(biāo)記
EndSub
PrivateSubMnu22_Click()
sell='',,
EndSub
PrivateSubMnu23_Click()
s&2=
EndSub—*
PrivateSubCommandl_Click(),”命題”按鈕單擊事件
DimaAsLong,bAsLong
Ifsell=0Orsel2=MnThen
MsgBox”先選擇運(yùn)算數(shù)的位數(shù)和運(yùn)算類(lèi)型”
ExitSub
EndIf
a=sell+Int(9*sell*Rnd),隨機(jī)生成指定位數(shù)的操作數(shù)
b=sell+Int(9*sell*Rnd)
Labell.Caption=Str(a)+sell+Str(b)+,組成算式
SelectCasesell,求運(yùn)算結(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”請(qǐng)輸入答案”
ExitSub
EndIf
r2=Val(Textl.Text),讀取用戶(hù)的答案
Ifrl=r2Then,判斷答案
LabeB.Caption=''正確''
Else
LabeB.Caption="錯(cuò)誤”
EndIf
EndSub
PrivateSubMnu30_Click(),“退出”菜單命令
End
EndSub¥
10.5.4運(yùn)行時(shí)改變菜單屬性
1.使菜單命令有效或無(wú)效?
所有的菜單項(xiàng)都具有Enabled屬性,當(dāng)該屬性為T(mén)rue(默認(rèn)
值)時(shí),有效;若為Fake時(shí),菜單項(xiàng)會(huì)變暗,菜單命令無(wú)效。
舉例:Mnu30.Enabled=False
[:hlIildl?
使用菜單項(xiàng)的Checked屬性,可以設(shè)置復(fù)選標(biāo)記。
舉例:Mnu31.Checked=True
■
3.使菜單項(xiàng)不可見(jiàn)?[
舉例:Mnu30.Visible=True平
10.5.5彈出式菜單
標(biāo)右鍵。可以根據(jù)右
使用VB提供的菜單編輯器,把某個(gè)菜單設(shè)置成隱藏。
(1)使用菜單編輯器設(shè)計(jì)菜單
I
(2)設(shè)置頂層菜單項(xiàng)為不可見(jiàn),即不選中菜單編輯器里的
“可見(jiàn)”選項(xiàng)或在屬性窗口中設(shè)定Visible屬性為False
I
出式菜單相關(guān)聯(lián)的MouseUp(釋放鼠標(biāo))事件過(guò)程。
[對(duì)象]PopupMenu菜單名[,位置常數(shù)][,橫坐標(biāo)L縱坐標(biāo)]]]
171I5IuLL171IU?DU,J仝則J_,JU也私不干以刀IAJAL不
單
(1)打開(kāi)例10.9的應(yīng)用程序,選定窗體,然后在菜單編輯器中
將“位數(shù)”菜單標(biāo)題的“可見(jiàn)”框中的“y”取消(即不選中)
(2)增加以下的MouseUp事件過(guò)程代碼:
PrivateSubForm_MouseUp(ButtonAsInteger,_
ShiftAsInteger,XAsSingle,YAsSingle)!
___IfButton=2Then,檢查是否右擊,擊左鍵為1
■
PopupMenumnulO^^H
End
EndSub
程序運(yùn)行時(shí),右擊窗體空白處,即會(huì)彈出快捷菜單,如圖
10.11所示
10.6工具欄和狀態(tài)欄
分別通過(guò)ActiveX控件ToolBar和StatusBar來(lái)實(shí)現(xiàn)
■
10.6.1ActiveX控件簡(jiǎn)介
VB中使用的控件有三類(lèi):標(biāo)準(zhǔn)控件、ActiveX
控件和可插入對(duì)象(如Word文檔、Excel工作表等,可當(dāng)
作控件使用)
ActiveX控件是一段可重復(fù)使用的程序代碼和數(shù)
據(jù)。由ActiveX技術(shù)創(chuàng)建的,可以作為VB工具箱的
擴(kuò)充部分。
ActiveX控件以單獨(dú)的文件存在(.ocx)
10.6.2工具欄(ToolBar)
工具欄為用戶(hù)帶來(lái)比用菜單更為快速的操作
為窗體添加工具欄,應(yīng)使用工具條(ToolBar)控件
和圖彳象控侔列表(ImageList)控件(不是標(biāo)準(zhǔn)控件,
創(chuàng)建工具欄的大致步驟^■
⑴添加ToolBar控件和
(2)用
(3)創(chuàng)建ToolBar控件,并將ToolBar控件與ImageList控件
相關(guān)喉,創(chuàng)建Button對(duì)象
(4)編寫(xiě)B(tài)utton的Click事件過(guò)程。
單擊工具欄控件時(shí)觸發(fā)Click事件,單擊工具欄上按鈕時(shí)
觸發(fā)ButtonClick事侔,笄返回一個(gè)Button參數(shù)(表明按下哪個(gè)
按鈕)
例10.11使用工具欄
在例10.9的基礎(chǔ)上,增加一個(gè)工具欄,使之能快
速提供“力口法”、“減法”和“乘法”運(yùn)算類(lèi)型
操作步驟:
(1)打開(kāi)例10.9的應(yīng)用程序
(2)按照上述創(chuàng)建ImageList的方法,在窗體上建立
ImageListl控件,并從Windows98系統(tǒng)文件夾中取出圖片文件
Hlpcd.gif、Hipbell.gif和Hlpglobe.gif(本例采用這三個(gè)圖片作為
按鈕的圖形
(3)在窗體上建立ToolBarl控件,使之與ImageListl相關(guān)聯(lián),
然后在控件中添加“加法”、“減法”和“乘法”三個(gè)按鈕,
并分別取用ImageListl中的三個(gè)圖片。
(4)在原有程序代碼的基礎(chǔ)上,增加以下的ButtonClick事件
過(guò)程代碼¥
10.6.3狀態(tài)欄
狀態(tài)欄(StatusBar)通常位于窗體的底部,主要
用于顯示應(yīng)用程序的各種狀態(tài)信息。StatusBar控件
屬于ActiveX控件
StatusBar控件由若干個(gè)面板(Panel)組成,每一
個(gè)面板包含文本和圖片。StatusBar控體最多能分成
16個(gè)Panel對(duì)象
★
例10.12使用狀態(tài)欄
(1)打開(kāi)例
(2)在窗體上創(chuàng)建StatusBarl^^^H
(3)右擊StatusBarl控件,從快捷菜單中選擇
“屬性”命令,系統(tǒng)彈出“屬性頁(yè)”對(duì)話框
(4)單擊“窗格”選項(xiàng)卡,屏幕顯示如圖10.16所
示
(5)設(shè)置第1個(gè)窗格(索弓I為1),“工具提示文本”
為“提示信息”,“樣式”為"0-sbrText”(即顯示
文本和位圖),其顯示內(nèi)容在運(yùn)行時(shí)由程序代碼設(shè)置
(6)設(shè)置第2個(gè)窗格(索引為2),“工具提示文本”
為“大小寫(xiě)狀態(tài)”,“樣式”為為-sbrCaps”(即顯
/l\寸牛
(7)設(shè)置第3個(gè)窗格(索引為3),其“工具提示文
本”為“時(shí)間”,“樣式”為"5?sbrTime”(即按
系統(tǒng)格式顯示時(shí)間)。
(8)要在運(yùn)行中使第1個(gè)窗格顯示“正在運(yùn)行
中”,可在Form_Load()事件過(guò)程中加入如下代
StatusBar1.Panels.Item(l)=''正在運(yùn)行中
運(yùn)行程序
10.7鍵盤(pán)與鼠標(biāo)事件
窗體和大多數(shù)控件都能響應(yīng)鍵盤(pán)和鼠標(biāo)事件
10.7.1鍵盤(pán)事件
有三種事件處理鍵盤(pán)操作,即KeyPress、KeyDown和
KeyUp事件
1.KeyPress事件
2.KeyDown事件:用戶(hù)按下鍵盤(pán)上某個(gè)鍵時(shí)觸發(fā)此事件
PrivateSubFormKeyDown(KeyCodeAsInteger,ShiftAsInteger)|
Print"按下鍵的代碼是";KeyCode^,
EndSub^^H
參數(shù)KeyCode是一個(gè)按下鍵的代碼(不區(qū)分大小寫(xiě))
3.KeyUp事件:用戶(hù)按下鍵盤(pán)上某個(gè)鍵后釋
放時(shí)觸發(fā)此事件。事件過(guò)程的語(yǔ)法格式類(lèi)似于
KeyDown事件
KeyDown和KeyUp事件除了可以識(shí)別
KeyPress事件能識(shí)別的鍵,還可識(shí)別鍵盤(pán)上的
大多數(shù)鍵,如功能鍵、編輯鍵、定位鍵和數(shù)字
小鍵盤(pán)上的鍵
¥
一
10.7.2鼠標(biāo)事件
包括:Click、DblClick>MouseMove>MouseDown和
MouseUp等事件
1.鼠標(biāo)事件過(guò)程格式
一后三種鼠標(biāo)事件與Click、DblClick事件不同的是可以區(qū)分
鼠標(biāo)的左、右、中鍵與Shift、CtrLAlt鍵。
鼠標(biāo)事件過(guò)程的語(yǔ)法格式為:
PrivateSub對(duì)象名鼠標(biāo)事件(ButtonAsInteger,ShiftAs
Integer,
XAsSingle,YAsSingle)
說(shuō)明:(1)Button參數(shù)表示哪個(gè)鼠標(biāo)鍵被按下或釋放。用0,1,2位分
別表示鼠標(biāo)的左、右、中鍵,用1或0表示被按下或釋放
210位
(2)Shift參數(shù)表示當(dāng)鼠標(biāo)鍵被按下或釋婺時(shí),Shift>CtrL
Alt鍵的按下或釋放狀態(tài)。用0、1、2位表示Shift、CtrLAlt
鍵
(3)X,Y表示鼠標(biāo)指針的當(dāng)前坐標(biāo)位置
2.鼠標(biāo)事件
⑴MouseDown和MouseUp^^^^H
當(dāng)按下鼠標(biāo)任意鍵時(shí)發(fā)生MouseDown事件,放開(kāi)鼠標(biāo)
鍵時(shí)發(fā)生MouseUp事件
PrivateSubFormMouseDown(ButtonAsInteger,
ShiftAsInteger,XAsSingle,YAsSingle)
Commandl.MoveX,Y*
EndSub¥
¥▼
(2)MouseMove事件
當(dāng)移動(dòng)鼠標(biāo)時(shí)發(fā)生MouseMove事件。伴隨鼠標(biāo)指
針在對(duì)象上移動(dòng),該事件會(huì)連續(xù)不斷地產(chǎn)生
(3)改變鼠標(biāo)指針的形狀
通過(guò)MousePointer和Mouselcon屬性來(lái)設(shè)置鼠標(biāo)指
針形狀
對(duì)象的MousePointer屬性用于設(shè)置鼠標(biāo)指針的形狀
示例:Text1.MousePointer=2x
10.7.3拖放操作
“拖放”(DragDrop)就是使用鼠標(biāo)將對(duì)象從一個(gè)地方拖動(dòng)
到另一個(gè)地方再放下控件拖放是指運(yùn)行時(shí)將控件拖放到新的
位置
它可以分解為兩種操作:一個(gè)是發(fā)生在源對(duì)象的“拖”
操作,另一個(gè)是發(fā)生在目標(biāo)對(duì)象上的“放”操作
1.屬性
(l)DragMode屬性:用于設(shè)置拖放方式
為手動(dòng)方式,通過(guò)代碼來(lái)設(shè)定拖
(2)DragIcon屬性:設(shè)置拖放操作時(shí)顯示的圖標(biāo),默認(rèn)情況
下是將源對(duì)象的灰色輪廓作為拖動(dòng)圖標(biāo)
2.事件
(l)DragDrop事件:當(dāng)一個(gè)完整的拖放動(dòng)作完成時(shí)觸發(fā)。
它可用來(lái)控制在拖放操作完成時(shí)要進(jìn)行的處理。其事件過(guò)程的
PrivateSub對(duì)象名_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
Source表示正在被拖動(dòng)的對(duì)象,X、Y表示鼠標(biāo)指針在目
標(biāo)對(duì)象中的坐標(biāo)。
■
一(2)DragOver事件:當(dāng)源對(duì)象被拖動(dòng)到目標(biāo)對(duì)象上,在目
標(biāo)對(duì)象上就會(huì)觸發(fā)DragOver事件。本事件先于DragDrop事件。
其事件過(guò)程的語(yǔ)法格式為:
■
PrivateSub對(duì)象名_DragOver(SourceAsControl,XAsSingle,_
YAsSingle,StateAsInteger)^H
State參數(shù):0表示進(jìn)入,即源對(duì)象正進(jìn)入目標(biāo)對(duì)象內(nèi);
1表示離開(kāi),即源對(duì)象正在離開(kāi)目標(biāo)對(duì)象;
2表示跨越,即源對(duì)象在目標(biāo)范圍內(nèi)移動(dòng)位置
3.方法
常用的有Drag方法。
對(duì)象名.Drag[動(dòng)作]■
“動(dòng)作”取值為0時(shí),表示取消拖動(dòng)操作;取值為1時(shí),啟
動(dòng)拖動(dòng)操作;取值為2時(shí),結(jié)束拖動(dòng)操作
例10.13采用自動(dòng)方式,實(shí)現(xiàn)文本框的拖動(dòng)操作
在窗體上建立一個(gè)文本框TextL其DragMode屬性值設(shè)置
為1(自動(dòng)方式),程序代碼:
PrivateSubForm_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
Source.MoveX,Y'移動(dòng)對(duì)象位置
EndSub
例10.14采用手動(dòng)方式,實(shí)現(xiàn)文本框的拖動(dòng)操作
在窗體上建立一個(gè)文本框Textl,其DragMode屬性值設(shè)置
為0(手動(dòng)方式),程序代碼:
PrivateSubForm_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
Source.MoveX,Y'移動(dòng)對(duì)象位置
EndSub
PrivateSubTextl_MouseDown(ButtonAsInteger,ShiftAsInteger,
XAsSingle,YAsSingle)
Text1.Drag1'啟動(dòng)“拖動(dòng)”操作
EndSub
PrivateSubTextl_MouseUp(ButtonAsInteger,ShiftAsInteger,
XAsSingle,YAsSingle)
Text1.Drag2'結(jié)束“拖動(dòng)”操作
EndSub
例10.15把文本框中的選定文本,拖放到圖
片框內(nèi)顯示出來(lái)
(1)在窗體上建立一^個(gè)圖片框(Picturel)和一^個(gè)文本框
(Text。文本框的Text屬性為空
(2)編寫(xiě)程序代碼
功能要求:程序運(yùn)行后,用戶(hù)在文本框內(nèi)輸入文本和用鼠
標(biāo)選定(通過(guò)拖動(dòng))文本,然后按住鼠標(biāo)左鍵后把文本框拖放到
圖片框內(nèi),即可把已選定的文本顯示在圖片框內(nèi)w
程序代碼:
PrivateSubForm_Load()^^|
Textl.DragMode=0‘置手動(dòng)方式■
EndSub^^H
PrivateSubPicturel_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
Picturel.CurrentX=X'以鼠標(biāo)位置為當(dāng)前顯示起始位置
Picturel.CurrentY=
Picturel.PrintTextl.SelText'在圖片框中顯示文本框中的選定內(nèi)容
EndSub^^l
PrivateSubTextl_MouseMove(ButtonAsInteger,ShiftAsInteger,
XAsSingle,YAsSingle)
IfButton=1ThenButton為
'置自動(dòng)方AS¥
Textl.DragMode=1
End
EndSub*
10.8對(duì)話框
對(duì)話框(DialogBox)是應(yīng)用程序與用戶(hù)進(jìn)行交互的
主要途徑。三種對(duì)話框:
⑴預(yù)定義對(duì)話框(使用函數(shù)InputBox和MsgBox來(lái)實(shí)
現(xiàn))■
(2)通用對(duì)話框■
(3)用戶(hù)自定義對(duì)話框
10.8.1通用對(duì)話框
通用對(duì)話框是一種ActiveX控件,利用它能夠很容易地創(chuàng)
建下列六種標(biāo)準(zhǔn)對(duì)話框:打開(kāi)(Open),另存為(SaveAs),顏色
(Color),字體(Font),打印機(jī)(Printer)和幫助(Help)對(duì)話框
1.添加通用對(duì)話框控件
在使用之前,應(yīng)選擇“工程”菜單中的“部件”命令先將
其添加到工具箱中
當(dāng)程序運(yùn)行時(shí),通用對(duì)話框是不可見(jiàn)的
通用對(duì)話框不僅本身具有一組屬性,而且由它產(chǎn)生的各種標(biāo)
準(zhǔn)對(duì)話框也擁有許多特定屬性。
屬性設(shè)置可以在屬性窗口或程序代碼中進(jìn)行,也可以通過(guò)
“屬性頁(yè)”對(duì)話框來(lái)設(shè)置
2.屬性頁(yè)
3.通用對(duì)話框的基本屬性和方法
(2)Action屬性:該屬性直接決定打開(kāi)哪種對(duì)話框
對(duì)話框類(lèi)型Action屬性值
無(wú)對(duì)話框0
打開(kāi)”對(duì)話框ShowOpen
“另存為”對(duì)話框2ShowSaveB
“顏色”對(duì)話框3ShowColorJ
“字體”對(duì)話框4ShowFontH
“打印”對(duì)話框5ShowPrinterl
“幫助”對(duì)話框6ShowHelp
例如,利用通用對(duì)話框CommonDialogl產(chǎn)生一個(gè)“打開(kāi)”
話框,可以執(zhí)行下列語(yǔ)句:
CommonDialogl.Action=l^^|
或CommonDialogl.ShowOpen*
(3)DialogTitle屬性:該屬性用于設(shè)置對(duì)話框的標(biāo)題
(4)ConcelEiror屬性:該屬性表示用戶(hù)在使用對(duì)話框進(jìn)行對(duì)話
時(shí),單擊“取消”按鈕是否產(chǎn)生錯(cuò)誤信息
(5)通用對(duì)話框的方法
4.“打開(kāi)”對(duì)話框
在程序中將通用對(duì)話框的Action屬性設(shè)置為1,或用
ShowOpen方法打開(kāi),則彈出“打開(kāi)文件”對(duì)話框
“打開(kāi)”對(duì)話框的屬性:
FileName>FileTitle>Filter>Filterindex>IniDir
■¥
¥求
例10.16建立一個(gè)“打開(kāi)文件”的對(duì)話框
在窗體上添加一個(gè)通用對(duì)話框和一個(gè)“打開(kāi)”命令按鈕,
當(dāng)單擊“打開(kāi)”按鈕時(shí),就會(huì)彈出一個(gè)“打開(kāi)文件”的對(duì)話
框
?.*'i.J
打開(kāi)?"IBOiI
」■■■
|打開(kāi)文件EIE3
搜尋(X):卜今我的文檔3國(guó)囪宣面國(guó)
]Izrweb
1WvDownloads口
KIMvPictures
2jMyWebs勒
^1mvdir回'
文件名?:打開(kāi)9|
文件類(lèi)型(X)取消
⑴把CommonDialog控件添加到工具箱中。然后在窗體上添
加CommonDialog控件,其默認(rèn)名稱(chēng)為CommonDialoglH
(2)在窗體上添加一個(gè)命令按鈕CommandL其Caption屬性為
(3)“打開(kāi)”命令按鈕Commandl的
PrivateSubCommandl_Click()
CommonDialog1.DialogTitle=”打開(kāi)文件“'設(shè)置文件過(guò)濾器
CommonDialogl.Filter="全部文件文本文件
CommonDialog1.InitDir=nC:\mydocuments”,設(shè)置默認(rèn)文件夾
CommonDialogl.ShowOpen,顯示“打開(kāi)”對(duì)話框
EndSub
其中,設(shè)置文件過(guò)濾器(Filter)屬性的參數(shù)格式如下:
描述符1I過(guò)濾符1I描述符2I過(guò)濾符
程序運(yùn)行后,單擊“打開(kāi)”按鈕即彈出如圖所示的對(duì)話框
從控件的FileName屬性中獲取選定的路徑及文件名
5■■■??
6.“顏色”對(duì)話框
7.“字體”對(duì)話框
例10.17“字體”對(duì)話框應(yīng)用示例
在文本框中輸入一段文字,單擊命令按鈕后,通
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44928-2024微電子學(xué)微光刻技術(shù)術(shù)語(yǔ)
- GB/T 44924-2024半導(dǎo)體集成電路射頻發(fā)射器/接收器測(cè)試方法
- GB/T 45174-2024鞋類(lèi)微孔鞋底密度測(cè)定法
- 1-3-Dieicosenoyl-glycerol-生命科學(xué)試劑-MCE-8506
- 二零二五年度上市公司員工持股協(xié)議轉(zhuǎn)讓易主合同
- 二零二五年度兒童教育機(jī)構(gòu)門(mén)店聯(lián)營(yíng)合作協(xié)議
- 二零二五年度船舶轉(zhuǎn)讓手續(xù)辦理與船舶交易評(píng)估與代理服務(wù)協(xié)議
- 2025年度足療技師星級(jí)評(píng)定與聘用合同
- 2025年度二零二五年度道路運(yùn)輸項(xiàng)目投資合作協(xié)議
- 施工現(xiàn)場(chǎng)交通管制制度
- 2025年度院感管理工作計(jì)劃(后附表格版)
- 勵(lì)志課件-如何做好本職工作
- 化肥銷(xiāo)售工作計(jì)劃
- 2024浙江華數(shù)廣電網(wǎng)絡(luò)股份限公司招聘精英18人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024年社區(qū)警務(wù)規(guī)范考試題庫(kù)
- 2025中考英語(yǔ)作文預(yù)測(cè):19個(gè)熱點(diǎn)話題及范文
- 第10講 牛頓運(yùn)動(dòng)定律的綜合應(yīng)用(一)(講義)(解析版)-2025年高考物理一輪復(fù)習(xí)講練測(cè)(新教材新高考)
- 2024秋期國(guó)家開(kāi)放大學(xué)本科《納稅籌劃》一平臺(tái)在線形考(形考任務(wù)一至五)試題及答案
- 2023年西安經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)管委會(huì)招聘考試真題
- 靜脈治療護(hù)理技術(shù)操作標(biāo)準(zhǔn)(2023版)解讀 2
- 2024年全國(guó)各地中考試題分類(lèi)匯編(一):現(xiàn)代文閱讀含答案
評(píng)論
0/150
提交評(píng)論