第八章內(nèi)部控件_第1頁
第八章內(nèi)部控件_第2頁
第八章內(nèi)部控件_第3頁
第八章內(nèi)部控件_第4頁
第八章內(nèi)部控件_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2第八章第八章 內(nèi)部控件內(nèi)部控件8.1 圖形與圖像類控件圖形與圖像類控件8.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器8.3 提供選項(xiàng)的控件提供選項(xiàng)的控件8.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件8.5 控件數(shù)組控件數(shù)組8.6 菜單菜單38.1 圖形與圖像類控件圖形與圖像類控件本節(jié)知識點(diǎn)本節(jié)知識點(diǎn): 直線控件(Line) 形狀控件(Shape) 圖像控件(Image) 圖片框控件(PictureBox) 48.1 圖形與圖像類控件圖形與圖像類控件v 已學(xué)過的內(nèi)部控件已學(xué)過的內(nèi)部控件: 窗體窗體(Form)、文本框、文本框(TextBox)、標(biāo)簽、標(biāo)簽(Label)、命令、命令按鈕按鈕(Comman

2、dButton)。v 本章將要學(xué)習(xí)的新內(nèi)部控件本章將要學(xué)習(xí)的新內(nèi)部控件: 直線直線(Line)、形狀、形狀(Shape)、圖像、圖像(Image)、圖片框、圖片框(PictureBox)。 滾動(dòng)條滾動(dòng)條(HScrollBar、VScrollBar)、框架、框架(Frame)、定、定時(shí)器時(shí)器(Timer)。 復(fù)選框復(fù)選框(CheckBox)、單選框、單選框(OptionButton)、列表框、列表框(ListBox)、組合框、組合框(ComboBox)。58.1 圖形與圖像類控件圖形與圖像類控件v 控件的學(xué)習(xí)方法控件的學(xué)習(xí)方法: 控件的功能??丶墓δ堋?屬性、方法、事件。屬性、方法、事件。 熟

3、悉內(nèi)部控件的熟悉內(nèi)部控件的常用常用屬性、方法、事件。屬性、方法、事件。 知道知道如何查找內(nèi)部控件的文檔如何查找內(nèi)部控件的文檔。 注意內(nèi)部控件注意內(nèi)部控件事件如何發(fā)生事件如何發(fā)生及及發(fā)生的順序發(fā)生的順序。 Name、Left、Top、Width、Height、Visible、Enabled、Move、Click、DbClick。68.1 圖形與圖像類控件圖形與圖像類控件1、直線控件直線控件(Line)v 功能功能:在窗體上顯示一條直線,用來將窗體上的控件進(jìn)行視覺上的分組。由于該控件只起裝飾作用,所以沒有方法和事件沒有方法和事件,也沒有也沒有Enable屬性屬性。v Name屬性屬性:對象名。v

4、X1、Y1、X2、Y2:這四個(gè)屬性決定了直線控件的兩個(gè)端點(diǎn)在窗體上的坐標(biāo)值??墒褂盟鼈儊碚{(diào)整直線控件的長短與位置。78.1 圖形與圖像類控件圖形與圖像類控件v Visible屬性屬性:決定直線控件是否可見。該屬性取值為“True”時(shí)可見,為“False”時(shí)不可見。v BorderStyle屬性屬性:該屬性決定了直線的線型。取值范圍0-6,整型。不同屬性值的意義見表8.1。v BorderWidth屬性屬性:線條寬度,單位像素像素。取值范圍:不小于1的整數(shù)。注意注意:除了“實(shí)線”和“透明”線型外,對于其他線型該屬性值一定要設(shè)為“1”。也就是說不可能有粗點(diǎn)劃線、粗虛線等。88.1 圖形與圖像類控件

5、圖形與圖像類控件2、形狀控件形狀控件(Shape)v 功能功能:顯示多種不同的形狀,用來裝飾窗體。形狀控件有Move方法、無事件。v Name屬性屬性:對象名。v Left、Top、Width、Height、Visible屬性屬性:這些屬性決定形狀控件的大小、位置與可見性,用法與其他控件相同,形狀控件無無Enabled屬性屬性。98.1 圖形與圖像類控件圖形與圖像類控件v Shape屬性屬性:決定控件以什么形狀顯示以什么形狀顯示。取值范圍:0-5,整型。取不同值時(shí)對應(yīng)的形狀見表8.2。注意控件實(shí)際大小控件實(shí)際大小與顯示形狀大小顯示形狀大小的不同。v BorderStyle屬性屬性:決定形狀控件

6、的邊框樣式,取值與直線控件的BorderStyle屬性相同。v BorderWidth屬性屬性:決定形狀控件的邊框?qū)挾龋瑔挝粸橄袼?。與直線控件相似。v FillStyle屬性屬性:決定形狀控件內(nèi)部的填充樣式。取值范圍:0-7,整數(shù)。取不同值時(shí)對應(yīng)的樣式見表8.3。108.1 圖形與圖像類控件圖形與圖像類控件v 例例8.1 窗體上有一個(gè)形狀控件和一個(gè)命令按鈕。編寫按鈕的Click事件過程,要求:連續(xù)單擊按鈕,形狀控件的形狀與填充樣式會(huì)交替循環(huán)改變.Private Sub Command1_Click() Static intShape As Integer Static intStyle As

7、Integer Static b As Boolean If b Then intShape = intShape + 1 If intShape 5 Then intShape = 0 End If b = Not b Shape1.Shape = intShape 改變形狀 Else intStyle = intStyle + 1 If intStyle 7 Then intStyle = 0 End If b = Not b Shape1.FillStyle = intStyle 改變填充樣式 End IfEnd Sub118.1 圖形與圖像類控件圖形與圖像類控件3、圖像控件圖像控件(I

8、mage)v 功能功能:用來在窗體上顯示保存在圖形文件中的圖像保存在圖形文件中的圖像。支持的圖形文件格式有: 位圖文件( . bmp) Windows元文件( . wmf) 增強(qiáng)型元文件( . emf) 圖標(biāo)文件( . ico) 以 . jpg、. Gif為擴(kuò)展名的圖形文件。128.1 圖形與圖像類控件圖形與圖像類控件v Name屬性屬性:對象名。v Left、Top、Width、Height、Visible屬性屬性:用法與其他控件相同。v Enabled屬性屬性:屬性值為“False”時(shí),圖形控件的外觀與屬性值為“True”時(shí)相同,只是不能響應(yīng)Click和DblClick事件。v Borde

9、rStyle屬性屬性:此屬性值為“0”時(shí),無邊框;為“1”時(shí)有邊框。138.1 圖形與圖像類控件圖形與圖像類控件v Picture屬性屬性:決定圖像控件顯示圖像的來源。如果不給此屬性賦值,則圖像控件不會(huì)顯示任何圖形。 為Picture屬性賦值的方法: 在設(shè)計(jì)時(shí)在設(shè)計(jì)時(shí):在屬性窗口中點(diǎn)擊Picture屬性欄中的按紐,打開“加載圖片”對話框,選取所要的圖片,按確定按紐。 在程序中在程序中,可使用內(nèi)部函數(shù)LoadPicture()把一個(gè)圖像文件賦給該屬性。如:img1.Picture = LoadPicture(“c:windowssetup.bmp”)148.1 圖形與圖像類控件圖形與圖像類控件v

10、 Stretch屬性屬性: 如果此屬性值為“True”,則當(dāng)所顯示圖像的原始大小與控件大小不同時(shí),會(huì)自動(dòng)縮放圖像填充整個(gè)控件. 如果此屬性值為“False”,圖像會(huì)以原始大小顯示,如果控件比圖像小,會(huì)使圖像顯示不完整。v Move方法方法:用法與其他控件相同。v Click事件事件、DblClick事件事件:用法和其他控件一樣。158.1 圖形與圖像類控件圖形與圖像類控件4、圖片框控件圖片框控件(PictureBox)v 功能功能:圖片框除具有圖像控件的所有功能外,還有如下功能 : 可作控件的容器。 支持繪圖方法,可繪圖。 通過Align屬性定位于窗體的一側(cè)。168.1 圖形與圖像類控件圖形與

11、圖像類控件v Name屬性屬性:對象名。v Left、Top、Width、Height、Visible、Enabled屬屬性性:這些屬性與其他控件的意義相同。v BorderStyle屬性屬性:值為“0”時(shí)無邊框,為“1”有。v Picture屬性屬性:與圖像控件的該屬性相同。v AutoSize屬性屬性:屬性值為“True”時(shí),控件會(huì)自動(dòng)適控件會(huì)自動(dòng)適應(yīng)圖片的大小應(yīng)圖片的大?。粸椤癋alse”時(shí),控件大小固定不變。178.1 圖形與圖像類控件圖形與圖像類控件v Align屬性屬性:決定圖片框在窗體上的位置。取值范圍:0-4,整型。取不同值時(shí)的含義見表8.4。由于圖片框可自動(dòng)位于窗體的某條邊上

12、可自動(dòng)位于窗體的某條邊上,所以可用來制作工具欄和狀態(tài)欄。v Move方法方法:用法與其他控件相同。除此之外,圖片框還支持多個(gè)繪圖方法。v Click事件事件、DblClick事件事件:用法與其他控件一樣。v Change事件事件:當(dāng)圖片框的Picture屬性值變化時(shí)屬性值變化時(shí),引發(fā)這個(gè)事件。188.1 圖形與圖像類控件圖形與圖像類控件5、使用圖片框控件作控件容器使用圖片框控件作控件容器v 圖片框可以作為控件容器控件容器,像窗體一樣容納其他控件。具有這種功能的控件還有框架框架(Frame)。v 圖片框和框架可以進(jìn)行多層嵌套多層嵌套。也就是說,一個(gè)容器內(nèi)即可以包含其他控件,也可以包含圖片框和框架

13、等容器控件。v 如果一個(gè)控件被放置在容器控件中,無論嵌套多深無論嵌套多深在程序中對它進(jìn)行操作時(shí),與直接放置在窗體上時(shí)與直接放置在窗體上時(shí)是一樣的是一樣的。198.1 圖形與圖像類控件圖形與圖像類控件v 控件容器的作用和特點(diǎn)控件容器的作用和特點(diǎn): 移動(dòng)容器控件,被包容的控件會(huì)跟隨移動(dòng)跟隨移動(dòng)。 隱藏容器控件,被包容的控件也不可見也不可見。 被包容的控件的Left和Top屬性值是其所在容器控件內(nèi)部的坐標(biāo)內(nèi)部的坐標(biāo)。208.1 圖形與圖像類控件圖形與圖像類控件v 例子例子:使用圖片框來創(chuàng)建一個(gè)工具欄。使用圖片框來創(chuàng)建一個(gè)工具欄。 在窗體上放置一個(gè)圖片框,然后將在窗體上放置一個(gè)圖片框,然后將Align

14、屬性置為屬性置為1,這時(shí)圖片框會(huì)自動(dòng)地附著在窗體標(biāo)題欄下面。這時(shí)圖片框會(huì)自動(dòng)地附著在窗體標(biāo)題欄下面。 單擊工具箱中的命令按紐圖標(biāo),然后在圖片框中拖單擊工具箱中的命令按紐圖標(biāo),然后在圖片框中拖動(dòng)添加一個(gè)按紐控件。這樣添加的按紐是不能通過動(dòng)添加一個(gè)按紐控件。這樣添加的按紐是不能通過拖動(dòng)方法移出圖片框的。拖動(dòng)方法移出圖片框的。 在圖片框中添加多個(gè)按紐控件,調(diào)整控件的大小和在圖片框中添加多個(gè)按紐控件,調(diào)整控件的大小和位置,設(shè)置相關(guān)屬性,然后編寫事件過程。位置,設(shè)置相關(guān)屬性,然后編寫事件過程。218.1 圖形與圖像類控件圖形與圖像類控件 在按紐控件上添加圖標(biāo)在按紐控件上添加圖標(biāo):將按紐對象的Style屬

15、性置“1”,將Caption屬性值清空,然后使用Picture屬性添加圖標(biāo)文件。 為控件設(shè)置提示信息為控件設(shè)置提示信息:即在運(yùn)行時(shí),當(dāng)鼠標(biāo)指針停留在控件上片刻后,會(huì)顯示一個(gè)簡要介紹控件功能的提示窗口。方法:將控件的TooltipText屬性值設(shè)置為要顯示的信息。22作業(yè):作業(yè):v制作教材制作教材182頁圖頁圖8.4中的工具條,并在窗體中的工具條,并在窗體上添加圖像控件,點(diǎn)擊不同按鈕時(shí),在圖像上添加圖像控件,點(diǎn)擊不同按鈕時(shí),在圖像控件中顯示不同的圖像??丶酗@示不同的圖像。238.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器本節(jié)知識點(diǎn)本節(jié)知識點(diǎn): 滾動(dòng)條控件(HScrollBar、VScroll

16、Bar) 框架控件(Frame) 定時(shí)器控件(Timer)248.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器1、滾動(dòng)條控件滾動(dòng)條控件(HScrollBar、VScrollBar)v 滾動(dòng)條控件分為水平滾動(dòng)條水平滾動(dòng)條(HScrollBar)和垂直滾動(dòng)垂直滾動(dòng)條條(VScrollBar)。兩者除了稱呼和放置方向不同外,其他都一樣。因此,下面介紹的所有屬性、方法和事件對兩者都適用。v 滾動(dòng)條由兩端帶有箭頭的滾動(dòng)按紐滾動(dòng)按紐、中間的滾動(dòng)塊滾動(dòng)塊和空白區(qū)域空白區(qū)域組成。v 用途用途:滾動(dòng)條一般用來上下、左右地滾動(dòng)文字和圖形,也可以用來進(jìn)行其他內(nèi)容的輸入輸出。258.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框

17、架與定時(shí)器v Name屬性屬性:對象名。v Left、Top、Width、Height、Visible、Enabled屬性屬性:這些屬性與其他控件的意義相同。v Value屬性屬性:反映滾動(dòng)條的當(dāng)前值。滾動(dòng)塊的位置大體上可以反映這個(gè)屬性的值,單擊滾動(dòng)按紐單擊滾動(dòng)按紐、單擊單擊空白區(qū)域空白區(qū)域、拖動(dòng)滾動(dòng)塊拖動(dòng)滾動(dòng)塊,都會(huì)改變這個(gè)屬性的值。v Min屬性屬性:決定了當(dāng)滾動(dòng)塊處于頂端或最左端位置時(shí),滾動(dòng)條Value屬性的值。即滾動(dòng)范圍的下限即滾動(dòng)范圍的下限。268.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器v Max屬性屬性:決定了當(dāng)滾動(dòng)塊處于底端或最右端位置時(shí),滾動(dòng)條Value屬性的值。即滾動(dòng)范

18、圍的上限滾動(dòng)范圍的上限。Min屬性和Max屬性取值范圍:-3276832768。v SmallChange屬性屬性:該屬性值是當(dāng)用戶單擊滾動(dòng)箭頭單擊滾動(dòng)箭頭按紐時(shí)按紐時(shí),Value屬性值的變化量。v LargeChange屬性屬性:該屬性值是當(dāng)用戶單擊滾動(dòng)箭單擊滾動(dòng)箭頭之間的空白區(qū)域時(shí)頭之間的空白區(qū)域時(shí),Value屬性值的變化量。上述兩個(gè)屬性的取值范圍:1-32768,整數(shù)。通常,LargeChange屬性的值要大于SmallChange屬性的值。278.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器v Change事件事件:滾動(dòng)條不支持Click和DblClick事件。當(dāng)滾動(dòng)條的Value屬性

19、值發(fā)生變化時(shí),引發(fā)Change事件。能夠引起Value屬性值改變的原因有: 單擊滾動(dòng)條箭頭按紐。 單擊空白區(qū)域。 拖動(dòng)滾動(dòng)塊。 在程序中重設(shè)了Value屬性的值。v Scroll事件事件:在滾動(dòng)條的滾動(dòng)塊被拖動(dòng)的過程中,引發(fā)此事件。在使用鼠標(biāo)拖動(dòng)滾動(dòng)條滾動(dòng)塊的過程中,會(huì)連續(xù)地引發(fā)多個(gè)會(huì)連續(xù)地引發(fā)多個(gè)Scroll事件事件。288.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器v 例子例子:設(shè)計(jì)如下界面,當(dāng)滾動(dòng)條Value屬性值變化時(shí)顯示在文本框中。298.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器Private Sub HScroll1_Change ()Text1.Text = HScroll

20、1.ValueEnd SubPrivate Sub HScroll1_Scroll()Text1.Text = HScroll1.ValueEnd Sub屬性設(shè)置:Min =1;Max = 1000SmallChange = 10;LargeChange = 10030作業(yè):作業(yè):v在窗體上放置在窗體上放置2個(gè)文本框和一個(gè)垂直滾動(dòng)條,個(gè)文本框和一個(gè)垂直滾動(dòng)條,當(dāng)單擊滾動(dòng)箭頭或拖動(dòng)滾動(dòng)塊時(shí),當(dāng)單擊滾動(dòng)箭頭或拖動(dòng)滾動(dòng)塊時(shí),2個(gè)文本框個(gè)文本框可以同時(shí)上下移動(dòng)??梢酝瑫r(shí)上下移動(dòng)。318.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器2、框架、框架控件控件(Frame)v 框架是一個(gè)左上角有標(biāo)題文字的方框

21、。v 功能功能:對窗體上的控件進(jìn)行視覺上的分組,使窗體上的內(nèi)容更有條理。v 希望被框架圍起來的控件可以疊放在框架控件上面,產(chǎn)生一種被框架圍起來的視覺效果。v 與圖片框一樣,框架也可以作為控件容器控件容器。328.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器v Name屬性屬性:對象名。v Left、Top、Width、Height、Visible、Enabled屬性屬性:這些屬性與其他控件的意義相同。注意注意:如容器控件的Enabled屬性值為“False”,則置于其內(nèi)部的控件都不能響應(yīng)用戶的鼠標(biāo)和鍵盤操作.v Caption屬性屬性:該屬性的值就是框架左上角的標(biāo)題文字。與標(biāo)簽控件相似,可在這

22、個(gè)屬性值中使用“&”設(shè)置快捷鍵。v BorderStyle屬性屬性:該屬性值為“0”時(shí),框架不顯示邊框與標(biāo)題文字;值為“1”時(shí),顯示邊框和文字。338.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器3、定時(shí)器控件定時(shí)器控件(Timer)v 功能功能:定時(shí)器控件又稱為定時(shí)器控件又稱為“計(jì)時(shí)器計(jì)時(shí)器”,在程序運(yùn)行,在程序運(yùn)行過程中它會(huì)像時(shí)鐘一樣不停地計(jì)時(shí),當(dāng)?shù)竭_(dá)預(yù)先設(shè)過程中它會(huì)像時(shí)鐘一樣不停地計(jì)時(shí),當(dāng)?shù)竭_(dá)預(yù)先設(shè)定的時(shí)間,就會(huì)自動(dòng)引發(fā)一個(gè)名為定的時(shí)間,就會(huì)自動(dòng)引發(fā)一個(gè)名為Timer的事件的事件。v 一個(gè)窗體可使用多個(gè)定時(shí)器一個(gè)窗體可使用多個(gè)定時(shí)器,它們的時(shí)間相互獨(dú)立,它們的時(shí)間相互獨(dú)立.v 定

23、時(shí)器定時(shí)器運(yùn)行時(shí)不可見運(yùn)行時(shí)不可見,因此沒有,因此沒有Visible屬性。屬性。v 定時(shí)器定時(shí)器大小固定大小固定,沒有,沒有Width和和Height屬性。屬性。v 定時(shí)器沒有任何方法。定時(shí)器沒有任何方法。348.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器v Name屬性屬性:對象名。v Left屬性屬性、Top屬性屬性:定時(shí)器在窗體上的位置。v Enabled屬性屬性:相當(dāng)于定時(shí)器的開關(guān)定時(shí)器的開關(guān)。當(dāng)屬性值為“True”時(shí),打開定時(shí)器;為“False”時(shí),關(guān)閉定時(shí)器。v Interval屬性屬性:該屬性值為一整數(shù),取值范圍:165535,表示以毫秒為單位的時(shí)間間隔以毫秒為單位的時(shí)間間隔。

24、初始設(shè)定一個(gè)Interval屬性值并打開定時(shí)器后,便開始計(jì)時(shí),以后每隔這個(gè)時(shí)間間隔都會(huì)引發(fā)一次每隔這個(gè)時(shí)間間隔都會(huì)引發(fā)一次Timer事件事件。358.2 滾動(dòng)條、框架與定時(shí)器滾動(dòng)條、框架與定時(shí)器v Timer事件事件:當(dāng)計(jì)時(shí)時(shí)間間隔到達(dá)時(shí),定時(shí)器自動(dòng)觸定時(shí)器自動(dòng)觸發(fā)這個(gè)事件發(fā)這個(gè)事件。是定時(shí)器控件支持的唯一事件。v 例子例子:窗體上自動(dòng)移動(dòng)的按鈕。368.3 提供選項(xiàng)的控件提供選項(xiàng)的控件本節(jié)知識點(diǎn)本節(jié)知識點(diǎn): 復(fù)選框控件(CheckBox) 單選框控件(OptionButton) 列表框控件(ListBox) 組合框控件(ComboBox)378.3 提供選項(xiàng)的控件提供選項(xiàng)的控件1、復(fù)選框控件

25、復(fù)選框控件(CheckBox)v 功能功能:復(fù)選框控件是提供選擇項(xiàng)的控件。其外觀是一個(gè)小方框后接一串文字。v 復(fù)選框控件的選擇狀態(tài): 方框中有對勾,表示該項(xiàng)被選中。 方框中空白,表示未被選中。 方框中為灰色并有對勾,表示此選項(xiàng)暫時(shí)無效。v 通常情況下,窗體上的復(fù)選框會(huì)按功能進(jìn)行分組。在同一組中,可以選擇多個(gè),也可一個(gè)不選。388.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v 用戶可以通過下列方法使復(fù)選框用戶可以通過下列方法使復(fù)選框在選與不選之間切換在選與不選之間切換: 直接用鼠標(biāo)點(diǎn)擊。直接用鼠標(biāo)點(diǎn)擊。 使用復(fù)選框標(biāo)題文字中的快捷鍵使用復(fù)選框標(biāo)題文字中的快捷鍵(Alt+字母字母)。 將焦點(diǎn)移至復(fù)選框控件上

26、,然后按空格鍵。將焦點(diǎn)移至復(fù)選框控件上,然后按空格鍵。398.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v Name屬性屬性:對象名。對象名。v Left、Top、Width、Height、Visible、Enabled屬性屬性:這些屬性與其他控件的意義相同。這些屬性與其他控件的意義相同。v Caption屬性屬性:屬性的值是復(fù)選框旁邊的標(biāo)題文字。:屬性的值是復(fù)選框旁邊的標(biāo)題文字。可在這個(gè)屬性值中使用可在這個(gè)屬性值中使用“&”設(shè)置快捷鍵。設(shè)置快捷鍵。v Style屬性屬性:該屬性值為:該屬性值為“0”時(shí),復(fù)選框以標(biāo)準(zhǔn)樣式時(shí),復(fù)選框以標(biāo)準(zhǔn)樣式顯示;值為顯示;值為“1”時(shí),以命令按紐樣式顯示,按下表

27、示時(shí),以命令按紐樣式顯示,按下表示選中,彈起表示未選中。選中,彈起表示未選中。v Alignment屬性屬性:該屬性值為:該屬性值為“0”時(shí),標(biāo)題文字在方時(shí),標(biāo)題文字在方框的右邊;值為框的右邊;值為“1”時(shí),標(biāo)題文字在方框的左邊。時(shí),標(biāo)題文字在方框的左邊。408.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v Value屬性屬性:該屬性值決定該屬性值決定復(fù)選框的選中狀態(tài)復(fù)選框的選中狀態(tài)。取值。取值范圍:范圍:0-2,整型。取不同值時(shí)的含義見表,整型。取不同值時(shí)的含義見表8.6。這里。這里有兩點(diǎn)需要注意:有兩點(diǎn)需要注意: 只能通過程序?qū)⒅抵荒芡ㄟ^程序?qū)⒅?賦給賦給Value屬性,用戶的操作不會(huì)屬性,用戶的操

28、作不會(huì)導(dǎo)致復(fù)選框變?yōu)榛疑?。?dǎo)致復(fù)選框變?yōu)榛疑?Value屬性為屬性為2時(shí)復(fù)選框變?yōu)榛疑c時(shí)復(fù)選框變?yōu)榛疑cEnabled屬性為屬性為False時(shí)變?yōu)榛疑暮x是完全不同的。時(shí)變?yōu)榛疑暮x是完全不同的。v Move方法方法:用法與其他控件相同。:用法與其他控件相同。v Click事件事件:除了用戶鼠標(biāo)單擊動(dòng)作外,其他任何可:除了用戶鼠標(biāo)單擊動(dòng)作外,其他任何可改變改變Value屬性的動(dòng)作或程序語句都會(huì)引發(fā)此事件。屬性的動(dòng)作或程序語句都會(huì)引發(fā)此事件。418.3 提供選項(xiàng)的控件提供選項(xiàng)的控件2、單選框控件單選框控件(OptionButton)v 功能功能:與復(fù)選框相似,單選框也是與復(fù)選框相似,單選

29、框也是成組地排列在窗體成組地排列在窗體上供用戶從中進(jìn)行選擇上供用戶從中進(jìn)行選擇。由圓形框和標(biāo)題文字組成。由圓形框和標(biāo)題文字組成。v 選擇狀態(tài)選擇狀態(tài):圓形框中空白,表示未選中;圓形框中有:圓形框中空白,表示未選中;圓形框中有黑點(diǎn)表示選中。黑點(diǎn)表示選中。v 單選框與復(fù)選框的本質(zhì)區(qū)別:單選框與復(fù)選框的本質(zhì)區(qū)別: 在同一組單選框中,只能有一個(gè)并且必須有一個(gè)單選在同一組單選框中,只能有一個(gè)并且必須有一個(gè)單選框被選中??虮贿x中。 選中一個(gè)單選框,則原來被選中的單選框會(huì)自動(dòng)變?yōu)檫x中一個(gè)單選框,則原來被選中的單選框會(huì)自動(dòng)變?yōu)槲催x定狀態(tài)。未選定狀態(tài)。428.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v 單選框的分組單選

30、框的分組: 直接放置在窗體上的所有控件被認(rèn)為是屬于同一組直接放置在窗體上的所有控件被認(rèn)為是屬于同一組無論它們之間的相互位置如何。無論它們之間的相互位置如何。 要在窗體上建立多組單選框,就要使用控件容器:要在窗體上建立多組單選框,就要使用控件容器:圖片框或框架,其中框架用的最多。將作為一組的圖片框或框架,其中框架用的最多。將作為一組的單選框放在控件容器中,就形成一組單選框。單選框放在控件容器中,就形成一組單選框。438.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v Name屬性屬性:對象名。對象名。v Left、Top、Width、Height、Visible、Enabled屬性屬性:這些屬性與其他控件的

31、意義相同。這些屬性與其他控件的意義相同。v Caption屬性屬性、Style屬性屬性、Alignment屬性屬性:這三個(gè):這三個(gè)屬性與復(fù)選框的用法相同。屬性與復(fù)選框的用法相同。v Value屬性屬性:與復(fù)選框不同,單選框的:與復(fù)選框不同,單選框的Value屬性為屬性為邏輯型,表示單選框的選擇狀態(tài)。該屬性值為邏輯型,表示單選框的選擇狀態(tài)。該屬性值為True時(shí)表示選中;為時(shí)表示選中;為False時(shí),未選中。時(shí),未選中。448.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v Move方法方法:用法與其他控件相同。用法與其他控件相同。v Click事件事件、DblClick事件事件:與復(fù)選框不同,單選框:與復(fù)選

32、框不同,單選框支持支持Click事件和事件和DblClick事件。一般很少編寫這些事件。一般很少編寫這些事件過程。事件過程。v 作業(yè)作業(yè):實(shí)現(xiàn)例子:實(shí)現(xiàn)例子8.4。458.3 提供選項(xiàng)的控件提供選項(xiàng)的控件3、列表框控件列表框控件(ListBox)v 功能功能:列表框是用來提供選項(xiàng)的控件。其特點(diǎn)是列表框是用來提供選項(xiàng)的控件。其特點(diǎn)是在在有限的空間中提供許多的選項(xiàng)有限的空間中提供許多的選項(xiàng)。v 當(dāng)列表框不能同時(shí)顯示所有的選項(xiàng)時(shí),會(huì)提供滾動(dòng)當(dāng)列表框不能同時(shí)顯示所有的選項(xiàng)時(shí),會(huì)提供滾動(dòng)條對控件中的選項(xiàng)進(jìn)行滾動(dòng)瀏覽、選擇。條對控件中的選項(xiàng)進(jìn)行滾動(dòng)瀏覽、選擇。v 列表框中的選擇項(xiàng)稱為列表框中的選擇項(xiàng)稱為“

33、條目條目(Item)”468.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v 列表框控件的特點(diǎn)列表框控件的特點(diǎn): 在一個(gè)矩形區(qū)域內(nèi),以有限的面積提供大量的可選項(xiàng)(通過滾動(dòng)操作)。 可以顯示單列,也可以顯示多列多列。 可以單選,也可以多選多選。 支持自動(dòng)排序自動(dòng)排序。 運(yùn)行過程中,方便地添加添加、刪除刪除條目。 可存儲(chǔ)與條目相關(guān)的數(shù)據(jù)存儲(chǔ)與條目相關(guān)的數(shù)據(jù)。478.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v 列表框與文本框的區(qū)別列表框與文本框的區(qū)別:它們的外觀很相似,但文它們的外觀很相似,但文本框中的文本是作為本框中的文本是作為一個(gè)整體進(jìn)行輸入輸出的一個(gè)整體進(jìn)行輸入輸出的,而,而列表框中的列表框中的每一個(gè)條目對程序來

34、說都是可識別的每一個(gè)條目對程序來說都是可識別的。在程序運(yùn)行時(shí),用戶不能在窗口中直接修改列表框在程序運(yùn)行時(shí),用戶不能在窗口中直接修改列表框中的內(nèi)容,而文本框則可以。中的內(nèi)容,而文本框則可以。488.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v Name屬性屬性:對象名。對象名。v Left、Top、Width、Height、Visible、Enabled屬性屬性:這些屬性與其他控件的意義相同。這些屬性與其他控件的意義相同。v Columns屬性屬性:決定列表框中顯示條目的列數(shù)。:決定列表框中顯示條目的列數(shù)。 為為“0”時(shí),顯示一列,條目多時(shí)自動(dòng)添加垂直滾動(dòng)條時(shí),顯示一列,條目多時(shí)自動(dòng)添加垂直滾動(dòng)條. 為為

35、“1”時(shí),仍顯示一列,條目多時(shí)自動(dòng)添加水平滾動(dòng)時(shí),仍顯示一列,條目多時(shí)自動(dòng)添加水平滾動(dòng)條,此時(shí)變?yōu)槎嗔小l,此時(shí)變?yōu)槎嗔小?值大于值大于1時(shí),條目的顯示列數(shù)視列表框的寬度而定,時(shí),條目的顯示列數(shù)視列表框的寬度而定,滾動(dòng)條為水平。滾動(dòng)條為水平。498.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v ListCount屬性屬性:該屬性的值是列表框中的該屬性的值是列表框中的條目數(shù)條目數(shù)。此屬性是此屬性是只讀只讀,設(shè)計(jì)階段不可用設(shè)計(jì)階段不可用。v List屬性屬性:該屬性實(shí)質(zhì)上是一個(gè):該屬性實(shí)質(zhì)上是一個(gè)一維數(shù)組一維數(shù)組,類型為字類型為字符串符串。數(shù)組下標(biāo)的。數(shù)組下標(biāo)的下界為下界為0,上界為上界為ListCount

36、屬性值屬性值減減1。每個(gè)數(shù)組元素順序?qū)?yīng)列表框中的一個(gè)條目每個(gè)數(shù)組元素順序?qū)?yīng)列表框中的一個(gè)條目。列表框添加條目的方法列表框添加條目的方法: 設(shè)計(jì)階段設(shè)計(jì)階段:在屬性窗口中的:在屬性窗口中的List屬性處為列表框添屬性處為列表框添加初始條目。加初始條目。 程序運(yùn)行時(shí)程序運(yùn)行時(shí):可使用:可使用List屬性來改變列表框中的現(xiàn)屬性來改變列表框中的現(xiàn)有條目。如語句:有條目。如語句: List1. List(m)=“新值新值”508.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v ListIndex屬性屬性:該屬性的值是該屬性的值是當(dāng)前被選中條目的序號當(dāng)前被選中條目的序號(也就是該條目的數(shù)組下標(biāo)值也就是該條目的數(shù)組

37、下標(biāo)值)。若列表框支持多選,。若列表框支持多選,則則ListIndex屬性的值是屬性的值是最后一個(gè)被選中條目的序號最后一個(gè)被選中條目的序號。v ItemData屬性屬性:列表框控件還:列表框控件還為每個(gè)條目預(yù)留了一個(gè)為每個(gè)條目預(yù)留了一個(gè)長整型數(shù)值空間長整型數(shù)值空間,用來保存與條目相關(guān)的信息。,用來保存與條目相關(guān)的信息。 ItemData屬性就是這樣一個(gè)屬性就是這樣一個(gè)一維數(shù)組一維數(shù)組,類型為長整型,類型為長整型不像不像List屬性數(shù)組,屬性數(shù)組,該數(shù)組不被顯示出來該數(shù)組不被顯示出來。 List屬性數(shù)組中的元素與屬性數(shù)組中的元素與ItemData屬性數(shù)組中的元素屬性數(shù)組中的元素按順序一一對應(yīng)按順

38、序一一對應(yīng)。518.3 提供選項(xiàng)的控件提供選項(xiàng)的控件List1.list(0)List1.list(1)List1.list(2)List1.list(3)List1.list(4)List1.list(5)List1.list(6)List1.list(7)List1.list(8)List1.list(9)List1.ItemData(0)List1.ItemData(1)List1.ItemData(2)List1.ItemData(3)List1.ItemData(4)List1.ItemData(7)List1.ItemData(6)List1.ItemData(5)List1.It

39、emData(9)List1.ItemData(8)顯示的列表框List屬性數(shù)組ItemData屬性數(shù)組528.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v MultiSelect屬性屬性:該屬性決定列表框是否支持多選。該屬性決定列表框是否支持多選。取值范圍:取值范圍:0-2,整型。取不同值時(shí)的含義見表,整型。取不同值時(shí)的含義見表8.8。v Style屬性屬性:該屬性值為:該屬性值為“0”時(shí),標(biāo)準(zhǔn)樣式;為時(shí),標(biāo)準(zhǔn)樣式;為“1”時(shí),時(shí),復(fù)選框樣式。運(yùn)行時(shí)為只讀。復(fù)選框樣式。運(yùn)行時(shí)為只讀。注意注意:無論:無論MultiSelect屬性為何值,如果屬性為何值,如果Style屬性為屬性為“1”,列表框都支持多選

40、。,列表框都支持多選。v SelCount屬性屬性:該屬性表明列表框中當(dāng)前被選中的條:該屬性表明列表框中當(dāng)前被選中的條目數(shù)。如沒有條目被選中,該屬性值為目數(shù)。如沒有條目被選中,該屬性值為“0”。運(yùn)行時(shí)。運(yùn)行時(shí)只讀,設(shè)計(jì)時(shí)不可用。只讀,設(shè)計(jì)時(shí)不可用。538.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v Selected屬性屬性:該屬性是一個(gè):該屬性是一個(gè)邏輯型數(shù)組邏輯型數(shù)組。數(shù)組元素。數(shù)組元素個(gè)數(shù)與列表框中的條目數(shù)相同,即個(gè)數(shù)與列表框中的條目數(shù)相同,即每個(gè)數(shù)組元素對應(yīng)每個(gè)數(shù)組元素對應(yīng)一個(gè)條目一個(gè)條目。數(shù)組元素值為。數(shù)組元素值為“True”時(shí),表示對應(yīng)的條時(shí),表示對應(yīng)的條目被選中,值為目被選中,值為“Fal

41、se”表示未被選中。該屬性設(shè)計(jì)表示未被選中。該屬性設(shè)計(jì)時(shí)不可用。時(shí)不可用。v TopIndex屬性屬性:是列表框中可見的第一個(gè)條目的序號。:是列表框中可見的第一個(gè)條目的序號。設(shè)計(jì)時(shí)不可用。設(shè)計(jì)時(shí)不可用。v Text屬性屬性: 該屬性保存了列表框該屬性保存了列表框當(dāng)前所選條目的文字當(dāng)前所選條目的文字。如沒有條目被選中,該屬性值為空字符串。如沒有條目被選中,該屬性值為空字符串。548.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v Sorted屬性屬性:該屬性決定列表框中的該屬性決定列表框中的條目是否排序條目是否排序。屬性值為屬性值為“True”時(shí),條目時(shí),條目按按ASCIIASCII碼和漢字國標(biāo)碼的碼和漢字

42、國標(biāo)碼的順序遞增排序順序遞增排序;為;為“False”時(shí)不排序。運(yùn)行時(shí)只讀。時(shí)不排序。運(yùn)行時(shí)只讀。v NewIndex屬性屬性:該屬性的值是最新添加到列表框中:該屬性的值是最新添加到列表框中條目的序號。只讀。條目的序號。只讀。558.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v AddItem方法方法: 在程序運(yùn)行時(shí),可以使用在程序運(yùn)行時(shí),可以使用AddItem方法方法往列表框中添往列表框中添加新條目加新條目。語法格式為:。語法格式為:列表框?qū)ο竺斜砜驅(qū)ο竺? AddItem 字符串表達(dá)式字符串表達(dá)式 ,序號,序號 說明:說明:AddItem方法將方法將“字符串字符串”插入到列表框中插入到列表框中“序

43、號序號”指定的位置上。序號的取值范圍:大于或等指定的位置上。序號的取值范圍:大于或等于于0,小于或等列表框中的當(dāng)前條目數(shù)。,小于或等列表框中的當(dāng)前條目數(shù)。 如果如果列表框已經(jīng)排序列表框已經(jīng)排序,使用該方法插入條目時(shí),不要,使用該方法插入條目時(shí),不要帶帶“序號序號”,以免引起混亂。,以免引起混亂。568.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v RemoveItem方法方法: 用于從列表框中用于從列表框中刪除指定序號位置上的條目刪除指定序號位置上的條目。格式:。格式:列表框?qū)ο竺斜砜驅(qū)ο竺?. RemoveItem 序號序號 說明:說明:“序號序號”指定的條目被刪除后,指定的條目被刪除后,與該條目相

44、與該條目相關(guān)聯(lián)的所有數(shù)據(jù)都會(huì)被刪除關(guān)聯(lián)的所有數(shù)據(jù)都會(huì)被刪除(ItemData屬性值、屬性值、 Selected 屬性值等屬性值等)。v Clear方法方法:清除列表框中的所有條目。格式:清除列表框中的所有條目。格式:列表框?qū)ο竺斜砜驅(qū)ο竺?Clearv Move方法方法:用法與其他控件相同。:用法與其他控件相同。578.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v Click、DblClick事件事件:意義與用法與其他控件相同:意義與用法與其他控件相同.注意注意:只有點(diǎn)擊列表框中的條目時(shí),才會(huì)引發(fā)這兩:只有點(diǎn)擊列表框中的條目時(shí),才會(huì)引發(fā)這兩個(gè)事件。點(diǎn)擊列表框的空白區(qū)域無效。個(gè)事件。點(diǎn)擊列表框的空白區(qū)域

45、無效。v Scroll事件事件:列表框的滾動(dòng)條滾動(dòng)時(shí),引發(fā)此事件。:列表框的滾動(dòng)條滾動(dòng)時(shí),引發(fā)此事件。用法同滾動(dòng)條控件的該方法。用法同滾動(dòng)條控件的該方法。v ItemCheck事件事件:列表框條目的復(fù)選框被選定或取:列表框條目的復(fù)選框被選定或取消時(shí)引發(fā)該事件。事件過程的語法:消時(shí)引發(fā)該事件。事件過程的語法:Private Sub 列表框?qū)ο竺斜砜驅(qū)ο竺?. ItemCheck(Item as Integer)Item參數(shù)反映被操作條目的序號參數(shù)反映被操作條目的序號。58作業(yè):作業(yè):v實(shí)現(xiàn)【例實(shí)現(xiàn)【例8.5】598.3 提供選項(xiàng)的控件提供選項(xiàng)的控件4、組合框控件組合框控件(ComboBox)v

46、 組合框可以看作是由組合框可以看作是由一個(gè)文本框和一個(gè)列表框構(gòu)成一個(gè)文本框和一個(gè)列表框構(gòu)成的組合體的組合體。所以組合框具有文本框和列表框大多數(shù)。所以組合框具有文本框和列表框大多數(shù)常用屬性、方法事件。常用屬性、方法事件。v Name屬性屬性:對象名。:對象名。v Left、Top、Width、Height、Visible、Enabled屬性屬性:這些屬性與其他控件的意義相同。這些屬性與其他控件的意義相同。v Style屬性屬性:決定組合框的樣式。取值:決定組合框的樣式。取值0-2,整型。取,整型。取不同值時(shí)的意義見表不同值時(shí)的意義見表8.11。608.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v 組合框的

47、其他常用屬性:組合框的其他常用屬性: 組合框不支持多選組合框不支持多選,因此無列表框的相關(guān)屬性。,因此無列表框的相關(guān)屬性。 除此之外。組合框除此之外。組合框支持列表框和文本框的大多數(shù)常支持列表框和文本框的大多數(shù)常用屬性用屬性。v AddItem、Clear、RemoveItem、Move方法方法: 組合框控件這些方法的用法與列表框相同。組合框控件這些方法的用法與列表框相同。 注意注意:組合框并不會(huì)自動(dòng)將用戶在文本框部分中輸:組合框并不會(huì)自動(dòng)將用戶在文本框部分中輸入的內(nèi)容作為列表框部分的條目。如果要達(dá)到這個(gè)入的內(nèi)容作為列表框部分的條目。如果要達(dá)到這個(gè)目的,可在事件過程中添加如下語句:目的,可在事

48、件過程中添加如下語句:組合框名組合框名. AddItem 組合框名組合框名.Text618.3 提供選項(xiàng)的控件提供選項(xiàng)的控件v Change事件事件:當(dāng)文本框中的內(nèi)容發(fā)生變化時(shí),觸發(fā):當(dāng)文本框中的內(nèi)容發(fā)生變化時(shí),觸發(fā)該事件。該事件。v Click、DblClick、Scroll事件事件: 當(dāng)用戶用鼠標(biāo)單擊、雙擊組合框時(shí),觸發(fā)當(dāng)用戶用鼠標(biāo)單擊、雙擊組合框時(shí),觸發(fā)Click事件事件和和DblClick事件。事件。 當(dāng)組合框的列表框部分的滾動(dòng)條被滾動(dòng)時(shí),引發(fā)當(dāng)組合框的列表框部分的滾動(dòng)條被滾動(dòng)時(shí),引發(fā)Scroll事件事件628.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件本節(jié)知識點(diǎn)本節(jié)知識點(diǎn): MouseDown

49、事件事件 MouseUp事件事件 MouseMove事件事件 KeyDown事件事件 KeyUp事件事件 KeyPress事件事件638.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件v 問題問題:控件的控件的Click、DblClick事件都沒有參數(shù),當(dāng)事件都沒有參數(shù),當(dāng)程序處理這兩個(gè)事件時(shí),存在如下問題:程序處理這兩個(gè)事件時(shí),存在如下問題: 不能確定用戶是在對象的什么位置上單擊的鼠標(biāo)。不能確定用戶是在對象的什么位置上單擊的鼠標(biāo)。 不能確定用戶單擊的是鼠標(biāo)上的哪一個(gè)鍵。不能確定用戶單擊的是鼠標(biāo)上的哪一個(gè)鍵。 不能確定在單擊鼠標(biāo)時(shí)是否按下了鍵盤上的某個(gè)控不能確定在單擊鼠標(biāo)時(shí)是否按下了鍵盤上的某個(gè)控制鍵。制鍵

50、。v 如果要在程序中得知上述各種狀態(tài),就要處理下面如果要在程序中得知上述各種狀態(tài),就要處理下面的三個(gè)鼠標(biāo)事件。的三個(gè)鼠標(biāo)事件。648.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件1、MouseDown事件事件v 具有該事件的對象有窗體、按紐、文本框、復(fù)選框、具有該事件的對象有窗體、按紐、文本框、復(fù)選框、單選框、框架、圖像、標(biāo)簽、列表框和圖片框。單選框、框架、圖像、標(biāo)簽、列表框和圖片框。v 當(dāng)用戶在對象上當(dāng)用戶在對象上按下鼠標(biāo)鍵時(shí)按下鼠標(biāo)鍵時(shí)引發(fā)引發(fā)MouseDown事件。事件。事件過程的語法格式事件過程的語法格式:Private Sub Object_MouseDown(button as Integer

51、, shift as Integer, x as Single, y as Single) . End Sub658.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件2、MouseUp事件事件v 具有該事件的對象同上。具有該事件的對象同上。v 當(dāng)用戶在對象上當(dāng)用戶在對象上釋放鼠標(biāo)鍵時(shí)釋放鼠標(biāo)鍵時(shí)引發(fā)引發(fā)MouseUp事件。事件。事件過程的語法格式:事件過程的語法格式:Private Sub Object_MouseMove(button as Integer, shift as Integer, x as Single, y as Single) . End Sub668.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件3、

52、MouseMove事件事件v 具有該事件的對象同上。具有該事件的對象同上。v 當(dāng)用戶在對象上當(dāng)用戶在對象上移動(dòng)鼠標(biāo)時(shí)移動(dòng)鼠標(biāo)時(shí)引發(fā)引發(fā)MouseMove事件。事件。事件過程的語法格式:事件過程的語法格式:Private Sub Object_MouseMove(button as Integer, shift as Integer, x as Single, y as Single) . End Sub678.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件4、鼠標(biāo)事件過程的參數(shù)鼠標(biāo)事件過程的參數(shù) v button參數(shù)參數(shù) 參數(shù)的值反映事件發(fā)生時(shí)參數(shù)的值反映事件發(fā)生時(shí)按下的是哪個(gè)鼠標(biāo)鍵按下的是哪個(gè)鼠標(biāo)鍵。1表

53、表示左鍵;示左鍵;2表示右鍵;表示右鍵;4表示中鍵。表示中鍵。 對于對于MouseMove事件,事件發(fā)生時(shí),可能同時(shí)有兩事件,事件發(fā)生時(shí),可能同時(shí)有兩個(gè)或三個(gè)鼠標(biāo)鍵被按下,這時(shí)個(gè)或三個(gè)鼠標(biāo)鍵被按下,這時(shí)button參數(shù)是相應(yīng)鍵參數(shù)是相應(yīng)鍵值之和。值之和。 在鼠標(biāo)移動(dòng)時(shí),可以不按下任何一個(gè)鼠標(biāo)鍵,這時(shí)在鼠標(biāo)移動(dòng)時(shí),可以不按下任何一個(gè)鼠標(biāo)鍵,這時(shí)button參數(shù)為參數(shù)為0。688.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件v Shift參數(shù)參數(shù) 參數(shù)的值反映事件發(fā)生時(shí),參數(shù)的值反映事件發(fā)生時(shí),鍵盤上哪個(gè)控制鍵被按鍵盤上哪個(gè)控制鍵被按下下。1表示表示Shift鍵;鍵;2表示表示Ctrl鍵;鍵;4表示表示Alt

54、鍵。鍵。 如果同時(shí)有兩個(gè)或三個(gè)控制鍵被按下,則如果同時(shí)有兩個(gè)或三個(gè)控制鍵被按下,則Shift參數(shù)參數(shù)是相應(yīng)鍵值之和。是相應(yīng)鍵值之和。 如果事件發(fā)生時(shí),沒有鍵被按下,如果事件發(fā)生時(shí),沒有鍵被按下,Shift參數(shù)為參數(shù)為0。v X參數(shù)、參數(shù)、Y參數(shù)參數(shù) 這兩個(gè)參數(shù)指明當(dāng)事件發(fā)生時(shí),鼠標(biāo)指針熱點(diǎn)所處這兩個(gè)參數(shù)指明當(dāng)事件發(fā)生時(shí),鼠標(biāo)指針熱點(diǎn)所處位置的坐標(biāo)。默認(rèn)情況下,位置的坐標(biāo)。默認(rèn)情況下,該坐標(biāo)系統(tǒng)的原點(diǎn)在引該坐標(biāo)系統(tǒng)的原點(diǎn)在引發(fā)事件對象的左上角發(fā)事件對象的左上角。698.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件v 幾點(diǎn)注意幾點(diǎn)注意 當(dāng)鼠標(biāo)移動(dòng)時(shí),會(huì)不斷發(fā)送當(dāng)鼠標(biāo)移動(dòng)時(shí),會(huì)不斷發(fā)送MouseMove事件。但

55、不事件。但不是每經(jīng)過一個(gè)點(diǎn)都會(huì)發(fā)生是每經(jīng)過一個(gè)點(diǎn)都會(huì)發(fā)生MouseMove事件,而是在事件,而是在移動(dòng)過程中移動(dòng)過程中每間隔很短的時(shí)間每間隔很短的時(shí)間發(fā)送一個(gè)此事件。因發(fā)送一個(gè)此事件。因此,在相同的距離上,鼠標(biāo)移動(dòng)的速度越快,產(chǎn)生此,在相同的距離上,鼠標(biāo)移動(dòng)的速度越快,產(chǎn)生的事件就越少。的事件就越少。 在對象上操作一次鼠標(biāo),會(huì)產(chǎn)生多個(gè)與鼠標(biāo)有關(guān)的在對象上操作一次鼠標(biāo),會(huì)產(chǎn)生多個(gè)與鼠標(biāo)有關(guān)的事件。這些事件。這些事件的產(chǎn)生順序可能不同事件的產(chǎn)生順序可能不同。所以在使用。所以在使用前一定要仔細(xì)測試。前一定要仔細(xì)測試。 當(dāng)一個(gè)控件不可見時(shí)當(dāng)一個(gè)控件不可見時(shí),針對它的鼠標(biāo)操作會(huì),針對它的鼠標(biāo)操作會(huì)傳遞到

56、傳遞到位于它下面的對象上位于它下面的對象上。708.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件v 鼠標(biāo)事件舉例鼠標(biāo)事件舉例:測量鼠標(biāo)事件的發(fā)生順序。v 窗體繪圖窗體繪圖718.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件v 需求需求: 要識別組合鍵、功能鍵、光標(biāo)鍵、小鍵盤上的按鍵。要識別組合鍵、功能鍵、光標(biāo)鍵、小鍵盤上的按鍵。 區(qū)別按下或松開的動(dòng)作。區(qū)別按下或松開的動(dòng)作。 對輸入字符進(jìn)行篩選。對輸入字符進(jìn)行篩選。v 對上述需求,要求使用鍵盤事件。對上述需求,要求使用鍵盤事件。728.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件5、KeyDown事件事件v 具有這個(gè)事件的對象有:窗體、命令按紐、文本框、具有這個(gè)事件的對象有:窗體

57、、命令按紐、文本框、復(fù)選框、單選框、列表框、組合框、滾動(dòng)條與圖片框。復(fù)選框、單選框、列表框、組合框、滾動(dòng)條與圖片框。事件過程的語法格式:事件過程的語法格式:v 該事件是當(dāng)一個(gè)對象該事件是當(dāng)一個(gè)對象具有焦點(diǎn)時(shí)具有焦點(diǎn)時(shí),用戶按下一個(gè)鍵盤,用戶按下一個(gè)鍵盤鍵時(shí)發(fā)生的鍵時(shí)發(fā)生的。Private Sub object_KeyDown(KeyCode as Integer, Shift as Integer)738.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件v KeyCode參數(shù)參數(shù):表示按鍵的代碼。每一個(gè)按鍵都有相:表示按鍵的代碼。每一個(gè)按鍵都有相應(yīng)的鍵代碼,見附錄應(yīng)的鍵代碼,見附錄D。鍵盤上字母和數(shù)字鍵的鍵代

58、。鍵盤上字母和數(shù)字鍵的鍵代碼與其碼與其ASCII碼相同。碼相同。注意注意:對于字母鍵,:對于字母鍵,KeyCode返回的總是大寫形式,返回的總是大寫形式,要知道當(dāng)前的大小寫形式,應(yīng)該檢測要知道當(dāng)前的大小寫形式,應(yīng)該檢測Shift參數(shù)的值。參數(shù)的值。v Shift參數(shù)參數(shù):指示在按下一個(gè)鍵時(shí),是否同時(shí)按下了:指示在按下一個(gè)鍵時(shí),是否同時(shí)按下了Shift、Ctrl、Alt鍵。為鍵。為1時(shí)按下了時(shí)按下了Shift鍵;為鍵;為2時(shí)按下時(shí)按下了了Ctrl鍵;為鍵;為4時(shí)按下了時(shí)按下了Alt鍵。當(dāng)這三個(gè)鍵中不止一鍵。當(dāng)這三個(gè)鍵中不止一個(gè)鍵按下時(shí),個(gè)鍵按下時(shí), Shift參數(shù)是按下鍵相應(yīng)數(shù)值之和。如參數(shù)是按

59、下鍵相應(yīng)數(shù)值之和。如果三個(gè)鍵均未按下,這個(gè)參數(shù)值為果三個(gè)鍵均未按下,這個(gè)參數(shù)值為0。748.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件6、KeyUp事件事件v 具有這個(gè)事件的對象同上。事件過程的語法格式:具有這個(gè)事件的對象同上。事件過程的語法格式:v 該事件是當(dāng)一個(gè)對象該事件是當(dāng)一個(gè)對象具有焦點(diǎn)時(shí)具有焦點(diǎn)時(shí),用戶,用戶松開松開一個(gè)按下一個(gè)按下的鍵盤鍵時(shí)發(fā)生的的鍵盤鍵時(shí)發(fā)生的。v 參數(shù)同參數(shù)同KeyDown事件。事件。Private Sub object_KeyUp(KeyCode as Integer, Shift as Integer)758.4 鼠標(biāo)與鍵盤事件鼠標(biāo)與鍵盤事件7、KeyPress事件事

60、件v 具有這個(gè)事件的對象同上。事件過程的語法格式:具有這個(gè)事件的對象同上。事件過程的語法格式:Private Sub object_KeyPress(KeyAscii as Integer)v 當(dāng)按了鍵盤上的一個(gè)當(dāng)按了鍵盤上的一個(gè)可打印字符鍵時(shí)可打印字符鍵時(shí),引發(fā)此事件。,引發(fā)此事件。 參數(shù)參數(shù)KeyAscii傳遞的是按鍵字符的傳遞的是按鍵字符的ASCII碼。碼。 具有焦點(diǎn)的對象才能接收該事件。具有焦點(diǎn)的對象才能接收該事件。 不屬于可打印字符范圍的鍵,不會(huì)引發(fā)該事件。不屬于可打印字符范圍的鍵,不會(huì)引發(fā)該事件。 該事件將字母的大小寫形式作為不同的鍵代碼解釋。該事件將字母的大小寫形式作為不同的鍵代碼解釋。768.4 鼠

溫馨提示

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

評論

0/150

提交評論