




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第四章 窗體14.1窗體的結構14.2窗體屬性14.2.1窗體基本屬性11. 名稱(Name)12. AutoRedraw(自動重畫)23. BackColor(背景色)與 ForeColor(前景色)34. BorderStyle 屬性55. Height(高度)、Width(寬度)、Top(頂部)與 Left(左邊距)屬性56. Caption 標題屬性67.字型Font屬性組78. Enabled(允許)(邏輯值)89. Visible(可見)屬性(邏輯值)84.2.2窗體其他常用屬性24.3 窗體的主要事件34.3.1 Activate (活動事件)與Deactivate(非活動事件)
2、34.3.2 Load(裝入)與UnLoad(卸載)事件34.3.3 Click(單擊)與 DblClick(雙擊)事件34.3.4 Resize 事件54.4窗體控制54.4.1裝入或卸載窗體54.4.2顯示和隱藏窗體54.4.3 Cls方法74.4.4 Move方法74.4.5 TextHeight和TextWidth84.4.6位置屬性CurrentX和CurrentY84.4.7窗體之間的數(shù)據(jù)存取94.5基本的窗體操作104.5.1添加窗體:104.5.2移除(清除)窗體104.5.3 END語句114.5.4多窗體的啟動(顯示)順序114.6多文檔程序144.6.1多文檔程序的建立1
3、54.6.2主窗體與子窗體的標題164.6.3主窗體與子窗體的菜單174.7窗體設計舉例17練習創(chuàng)建一個窗體18第四章 窗體學習目標1. 學會在應用程序中通過編程來調(diào)用和卸載工程中的窗體。2. 掌握有關窗體操作的語句和方法。3. 理解區(qū)別Unload和Hide方法。4. 了解啟動窗體的概念。學習重點 有關窗體操作的語句和方法。在VB中建立一個程序主要包括兩部分工作,即:設計窗體和編寫代碼。前面已對窗體做了一個簡單介紹,編寫VB程序首先要根據(jù)需要創(chuàng)建一個良好的可視化界面,因此VB程序界面是由窗體(Form)和一些必要的控件元素(Control)構成的。由于VB屬于面向?qū)ο缶幊?,也可以將窗體、控件
4、都稱為對象。窗體是窗體設計器窗口的簡稱,是應用程序面向用戶的最終窗口。窗體也是一種對象,由其屬性定義外觀,用方法定義其行為,通過事件設定與用戶實現(xiàn)交互。因此,設計窗體也就是設計一個應用程序的操作界面。當啟動一個新的工程文件時,VB自動創(chuàng)建一個帶圖標的新窗體,命名為“Form1”。窗體內(nèi)帶有網(wǎng)點(稱為網(wǎng)格)的窗口,這就是用戶的窗體,一般也是程序運行時的主窗口。重新對該窗體大小的調(diào)整及屬性值設置等操作,稱為定制窗體。對窗體、控件的定制,在設計期間稱為設計時,程序運行期間稱為運行時。4.1窗體的結構當啟動一個標準 EXE程序后,窗體設計器中會出現(xiàn)一個默認的窗體。可以發(fā)現(xiàn)它的外觀大致與Windows中
5、記事本窗口一樣,其窗體右上角也有最小化、最大化、關閉三個按鈕。如圖4-1所示:圖4-1系統(tǒng)控件菜單:Form1.ControlBox,點擊“圖標”它可以彈出控制菜單命令。標題欄:Form1.Caption,顯示的窗口標題,如本例中的“Form1”。最小化按鈕:Form1.MinButton 。最大化按鈕:Form1.MaxButton 。4.2窗體屬性窗體屬性決定了窗體的外觀,如大小、顏色和標題等。對窗體屬性設置還可以改變窗體的結構。4.2.1窗體基本屬性1. 名稱(Name) “名稱”是任何對象(窗體、控件)都具有的標識名,在屬性窗口定義對象(窗體、控件)名稱,以便在程序中引用。對于任何一個
6、可以在屬性窗口設置其屬性的對象,必須設置該屬性的值。VB自動為每一個對象給定一個缺省值。窗體名稱“Name”,是窗體的標識名,其屬性的缺省值為 FormX(X為編號,從1,2,依次順延)。對于給VB中所有對象(窗體、控件)“名稱”命名,都應按如下規(guī)則:1) 必須以字母或漢字開頭;2) 可包括字母、數(shù)字和下劃線,不能有空格或標點符號;3) 最大長度為40個字符;4) 不能使用與公共對象相同的名字,例如 Clipboard、Screen 或 App。雖然窗體名稱命名可以是一個關鍵字、屬性名字、或別的對象的名字,但這會在代碼中產(chǎn)生沖突,因此不要使用。5) “名稱”只具有只讀屬性,它只能在程序設計階段
7、設置,不能在運行期間改變。名稱不會顯示在窗體上。 在簡單的程序里,給創(chuàng)建的對象命名不是很必要,可以直接使用VB為每一個對象給定的缺省值(默認名稱)。但在有幾十個對象(控件)的復雜窗體里,使用對象的缺省值,會讓你用更多的時間去區(qū)分它們是那類控件。為了能見名知意,提高程序可讀性,VB推薦由三個小寫字母的前綴和一個以第一個字母為大寫的描述性單詞組成的名字。推薦的前綴見下表:對象前綴例子窗體(Form)frmFrmFirst確認框(CheckBox)chkChk1組合框(ComboBox)cboCbo1命令鈕(CommandButton)cmdCmdExit數(shù)據(jù)庫控件(DataControl)datD
8、at1目錄列表框(DirectoryList Box)dirDirTree驅(qū)動器列表框(DriveList Box)drvDrvDisk文件列表框(FileList Box)filFilDocuments框架(Frame)fraFraButtons水平滾動條(HorizontalScroll Bar)hsbHsbScroll圖形(Image)imgImg1標簽(Label)lblLbl1線(Line)linLin1列表框(ListBox)lstLst1菜單(Menu)mnuMnu1選項鈕(OptionButton)optOptButton1圖片框(PictureBox)picPic1幾何圖形(
9、Shape)shpShp1文本框(TextBox)txtTxt1垂直滾動條(VerticalScroll Bar)vsbVsbScroll2. AutoRedraw(自動重畫)該屬性決定窗體被隱藏或被另一窗口覆蓋之后,是否重新還原該窗體被隱藏或覆蓋以前的畫面。即是否重畫如Circle、Line、Pset和Print等方法的輸出。該屬性可以通過屬性窗口設置如圖4-2所示,其屬性值為True時,可以重新還原該窗體以前的畫面;若為False時,則不重新還原。默認屬性為 False。常用于多窗體程序設計中。該屬性的設置也可以在運行時通過代碼進行設置,語句格式為:窗體名稱.AutoRedraw=Bool
10、ean 圖4-2例如:有兩個窗體Form1和Form2,先加載窗體Form1會在窗體中央畫許多同心圓,單擊窗體Form1會顯示窗體Form2,當單擊窗體Form2時卸載窗體Form2,觀察窗體Form1上畫的許多同心圓有無改變。程序如下:Private Sub Form_Click() 窗體1程序 Form2.ShowEnd SubPrivate Sub Form_ load() 窗體中央畫許多同心圓Form1.ShowDim X, Y, R, LScaleMode = 3 以像素為單位X = Form1.ScaleWidth / 2 X 位置Y = Form1.ScaleHeight / 2
11、 Y 位置If X Y Then L = Y Else L = X For R = 0 To L 半徑 Circle (X, Y), R, RGB(Rnd * 255, Rnd * 255, Rnd * 255) Next REnd SubPrivate Sub Form_Load() 窗體中央畫許多同心圓Form1.ShowDim R For R = 0 To 10 半徑 Print sssssssssssssssssssssssssssssssssss Next REnd Sub窗體2程序Private Sub Form_click() Unload Form2 卸載窗體End Sub注:
12、ScaleWidth和ScaleHeight屬性返回或設置“對象”(此例題“對象”是窗體)內(nèi)部的水平或垂直度量單位。ScaleMode屬性,返回或設置使用圖形方法或調(diào)整控件位置時一個值,該值指示對象坐標的度量單位。3. BackColor(背景色)與 ForeColor(前景色)BackColor屬性用于設置窗體的背景顏色,如圖4-3所示; ForeColor屬性用于設置在窗體里顯示的圖片或文本的顏色,即用來指定圖形或文本的前景色,如圖4-4所示。圖4-3 圖4-4它們用十六進制數(shù)指定顏色,在語句中顏色的表現(xiàn)形式為:&HBBGGRR&說明:它們用十六進制數(shù)指定顏色,在語句中顏色的表現(xiàn)形式為:&
13、HBBGGRR&。BB 指定藍顏色的值,GG 指定綠顏色的值,RR 指定紅顏色的值。每個數(shù)段都是兩位十六進制數(shù),即從 00 到 FF。在程序代碼中可以用Windows 運行環(huán)境的紅-綠-藍 (RGB) 顏色方案,使用調(diào)色板或在代碼中使用 RGB 或 QBColor 函數(shù)指定標準RGB顏色。RGB 函數(shù)是用來指定顏色,多數(shù)情況下用十六進制數(shù)指定顏色,分別定義了紅、綠、藍三種顏色的值。紅、綠、藍三種成分都是用 0 到 255 (&HFF) 之間的數(shù)表示。因此,可以用十六進制數(shù)按照下述語法來指定顏色,即&HBBGGRR&。例如:將窗體Form1的背景色設置為紅色,則可使用下面四種方法: Form1.
14、BackColor = RGB(255, 0, 0) RGB 函數(shù) Form1.BackColor = &HFF& 用十六進制數(shù)指定顏色Form1.BackColor = QBColor(12) QBColor()函數(shù)Form1.BackColor = vbRed VB提供的顏色常數(shù)QBColor 函數(shù)返回一個 Long數(shù)據(jù)類型,用來表示所對應顏色值的 RGB 顏色碼。語句格式為:QBColor(color)說明:color 參數(shù)代表使用于早期版本的 Basic(如 Microsoft Visual Basic for MS-DOS 以及 Basic Compiler)的顏色值。QBColor
15、 函數(shù)返回值指定了紅、綠、藍三原色的值,用于設置成 VBA中RGB 系統(tǒng)的對應顏色。color 參數(shù)是一個界于 0 到 15 的整型。color 參數(shù)設置值見下表:值顏色值顏色0黑色8灰色1蘭色9亮蘭色2綠色10亮綠色3青色11亮青色4紅色12亮紅色5洋紅色13亮洋紅色6黃色14亮黃色7白色15亮白色例如:在窗體上添加一個文本框和一個命令按鈕,每單擊一次命令按鈕,則文本框內(nèi)字體顏色就變化一次(利用QBColor 函數(shù)實現(xiàn))。Private Sub Command1_Click()Static i As IntegerIf i 16 Then Endi = i + 1End Sub除了利用RGB
16、和Qcolor函數(shù)來設置控件的顏色,還可以使用VB自身提供的Color 常數(shù)來設置控件的顏色,這些常數(shù)可以在代碼中的任何地方用下列常數(shù)代替實際值見下表:常數(shù)值描述vbBlack0x0黑色vbRed0xFF紅色vbGreen0xFF00綠色vbYellow0xFFFF黃色vbBlue0xFF0000藍色vbMagenta0xFF00FF紫紅色vbCyan0xFFFF00青色vbWhite0xFFFFFF白色例如:將窗體Form1的背景色設置為紅色,則可使用下面語句: Form1.BackColor = vbRed 4. BorderStyle 屬性BorderStyle 屬性用于設置窗體的邊框樣
17、式,通過改變 BorderStyle 屬性設置,可以控制窗體如何調(diào)整大小。Form 對象的 BorderStyle 屬性設置值如下表所示:常數(shù)設置值描述vbBSNone0-None無邊框;vbFixedSingle1-FixedSingle單線邊框,不可以改變窗口大?。籿bSizable2-Sizable(缺省值)雙線邊框,可以改變窗口大??;vbFixedDouble3-FixedDouble雙線框架,不可以改變窗口大??;vbFixedToolWindow4-FixedToolWindow窗體外觀與工具條相似。只有關閉按鈕,不可以改變窗口大??;vbSizableToolWindow5-Siza
18、bleToolWindow窗體外觀與工具條相似。只有關閉按鈕可以改變窗口大小。常與BorderStyle 屬性配合使用是ControlBox屬性。5. Height(高度)、Width(寬度)、Top(頂部)與 Left(左邊距)屬性這四個屬性決定窗體(或控件)的大小,在容器中的位置,如圖4-5所示:圖4-51) Height(高度)、Width(寬度)這兩個屬性用來指定窗體的高度與寬度(包括邊框?qū)挾群蜆祟}欄高度)。其度量單位是twip。(1 twip=1/20點=1/1440英寸=1/567cm或大約等于1厘米的1/28)例如:要讓窗體的寬度變?yōu)?3000 Twip ,高度變?yōu)?6000 T
19、wip ,具體程序如下:Private Sub Form1_ load()Form1.Width = 3000Form1.Height = 6000End Sub2) Top(頂部)、Left(左邊距)通過這兩個屬性可以控制窗體的坐標(左上角)位置。其度量單位是twip。(1 twip=1/20點=1/1440英寸=1/567cm)。注意:隨著對象的不同,這個Top與Left的意義不同。當對象是窗體時,Top指的是窗體頂部與屏幕頂部的相對距離,Left 指的是窗體左邊界與屏幕左邊界的間距;當對象是其他控件時,它們分別表示控件頂部、左邊與窗體頂部左邊之間的距離。例如:把 Form1 窗體移動到距
20、屏幕頂部 200 Twip ,距屏幕左邊距 300 Twip 的地方,程序如下:Private Sub Form_ load()Form1.Top = 200Form1.Left = 300End Sub例如:讓窗體加載時,窗體的大小為屏幕的50%且居中顯示, 程序如下: Private Sub Form_load() Form1.Width = Screen.Width * 0.5 Form1.Height = Screen.Height * 0.5 Form1.Left = (Screen.Width - Form1.Width) / 2 居中顯示 Form1.Top = (Screen.
21、Height - Form1.Height) / 2End Sub3) Screen.Height 屬性是指屏幕的高度,即整個 Windows 桌面高度。4) Screen.Width屬性是指屏幕的寬度,即整個 Windows 桌面寬度。6. Caption 標題屬性 該屬性用來設置對象上或標題欄上的顯示內(nèi)容,在外觀上起到提示和標志的作用。當創(chuàng)建一個新窗體時,窗體的Caption 標題屬性值,為缺省的Name屬性設置值,即Form1。標題可以通過屬性窗口重新設置。例如:讓窗體標題變?yōu)椤皌est”,如圖4-6所示: 圖4-6Caption屬性可以在運行時中通過代碼改變。語句格式為: 窗體.Cap
22、tion = 字符串例如:讓窗體的標題改變?yōu)閠est,如圖4-6所示。Private Sub Form_Load()Form1.Caption = testEnd Sub注意:Name屬性與Caption屬性的區(qū)別,兩者雖然缺省值相同,都是Form1,但實際意義卻不一樣。Caption指的窗體標題欄上的文字,Name指這個窗體的對象名;也可以理解Name屬性用于在代碼中標識窗體、控件對象的名稱(所有對象都具有的屬性),供程序引用。Name屬性在程序運行時不能改變;Caption屬性是標題欄上的文字,在程序運行時可以通過程序代碼改變。另外,對于窗體和所有有標題的控件,標題最長為255 個字符;標
23、簽(Label)控件的標題長度沒有字符數(shù)限制。7.字型Font屬性組 字體屬性用來設置輸出字符的各種特性,包括字體、大小等,這些屬性適用大部分控件。字體屬性可以通過屬性窗口設置,也可以在程序運行中通過代碼改變。字體屬性的設置操作及字型等概念與使用Word的設置字體格式基本一樣。1) 字體類型FontName屬性是字符型,決定對象上正文的字體(缺省為宋體)。語句格式為: 窗體.FontName=字體類型例如:要在屏幕上顯示的字體為“隸書”,具體程序如下:圖4-72) 字體大小FontSize屬性是整型,決定對象上正文的字體大小,語句格式為:窗體. FontSize=字號例如:Text1. Fon
24、tSize t=20 設置文本框中的字體大小3) 粗體字FontBold屬性是邏輯型,決定對象上正文是否是粗體,語句格式為:窗體. FontBold=Boolean Boolean為邏輯值 True(真) / False(假)Private Sub Form_click()FontSize = 16Form1.FontBold = True 讓打印字體加粗Print ffffffffffEnd Sub4) 斜體字FontItalic屬性是邏輯型,決定對象上正文是否是斜體,語句格式為:窗體. FontItalic =Boolean5) 加刪除線字FontStrikeThru屬性是邏輯型,決定對象
25、上正文是否加一刪除線。語句格式為:窗體. FontStrikeThru =Boolean6) 加下劃線字FontUnderLine屬性是邏輯型,決定對象上正文是否帶下劃線。語句格式為: 窗體.FontUnderLine =Boolean注意:如果省略對象名稱,則指的是當前窗體;設置一種屬性后,該屬性立即生效,并且不會自動撤消,可在利用上述方法重新設置,才能改變該屬性值。另外,某些對象中的屬性是邏輯型的,改變其邏輯型的值,也可以利用下面的語句格式: 對象屬性=Not 對象屬性例如:要求每單擊一次窗體就會讓窗體上的字體由細變成加粗、加斜顯示。如圖4-8所示:Private Sub Form_cli
26、ck()FontSize = 16Print 字體FontBold = Not FontBold 邏輯開關語句FontItalic = Not FontItalicEnd Sub或利用條件語句進行判斷,見下面程序:Private Sub Form_click()FontSize = 16Print 字體If FontBold = False And FontItalic = False Then FontBold = True FontItalic = TrueElse FontBold = False FontItalic = FalseEnd IfEnd Sub8. Enabled(允許)
27、(邏輯值)每個對象都有一個Enabled屬性。該屬性用來激活對象或禁止使用對象,即決定對象是否可操作。當一個對象的Enabled屬性設置為True(真)時 ,允許用戶進行操作,并對操作出響應(缺省值為True);當一個對象的Enabled屬性設置為False(假)時,控件呈暗淡色,禁止用戶進行操作。窗體Enabled屬性決定運行時窗體是否響應用戶事件。在程序運行時可以看到改變 Enabled屬性的效果。若Enabled已設為False,則點擊按鈕窗體不會有反應。該屬性可以通過屬性窗口設置,也可以在運行時通過代碼進行設置,語句格式為:窗體.Enabled=Boolean9. Visible(可見
28、)屬性(邏輯值)當一個對象的Visible 屬性設置為 False 時,程序運行時不能看見;只有當 Visible 屬性值變?yōu)?True 時,才能被看見。窗體Visible屬性決定程序運行時窗體是否可見。當Visible為False時,窗體是不可見的,若值改為True,運行時窗體則可見。該屬性可以通過屬性窗口設置,也可以在運行時通過代碼進行設置,語句格式為:窗體.Visible=Boolean例如:單擊窗體,則隱藏窗體,單擊窗體顯示命令按鈕。具體程序如下:Private Sub Form_Click()Form1.Visible = False 隱藏窗體MsgBox 單擊按鈕,使窗體重現(xiàn)屏幕
29、顯示信息Form1.Visible = True 隱藏窗體End Sub例如:要求單擊窗體1(隱藏窗體1),則顯示窗體2,反之亦然。具體程序如下: Form1 的代碼如下:Private Sub Form_click() Form1.Visible = False Form2.ShowEnd Sub Form2 的代碼如下:Private Sub Form_click() Form2.Visible = False Form1.ShowEnd Sub例如:單擊窗體上命令按鈕,則命令按鈕隱藏,單擊窗體顯示命令按鈕。具體程序如下:Private Sub Command1_Click()Comman
30、d1.Visible = FalseEnd SubPrivate Sub Form_Click()Command1.Visible = TrueEnd Sub4.2.2窗體其他常用屬性1MaxButton最大化按鈕和MinButton最小化按鈕 設置值為 Ture,有最大或最小化按鈕,設置值為False則無。2ControlBox控制菜單框?qū)傩匀粼O置值為Ture,有控件菜單欄(圖標);如設置為False,則無控件菜單(圖標),同時窗體也無最大化按鈕和最小化按鈕,即使MaxButton屬性和MinButton屬性設置為Ture。另外,要使ControlBox屬性有效,則BorderStyle 屬
31、性值必須為1、2或3。3Icon 控制圖標屬性使用該屬性返回或設置窗體左上角顯示或最小化時顯示的圖標。該屬性設置可以在設計時通過屬性窗口加載指定圖標,所加載的文件是圖標 (.ico) 文件。如果不指定圖標,窗體會使用 VB 缺省圖標。該屬性也可以在運行時通過代碼進行設置,語句格式為:窗體.Icon例如:通過運行下面程序改變窗體上VB 缺省圖標。Private Sub Form_Click() PLANE2.ICO 圖標必須在c: 目錄中,這個例子才能正常運行Form1.Icon = LoadPicture(c:PLANE2.ICO)End Sub4KeyPreview 屬性返回或設置一個值,以
32、決定是否在控件的鍵盤事件之前激活窗體的鍵盤事件。設置值為False (缺省值),活動控件接收鍵盤事件,而窗體不接收;設置值為True ,窗體先接收鍵盤事件,然后是活動控件接收事件。鍵盤事件為:KeyDown、KeyUp 和 KeyPress。當用程序代碼設置時,語句格式為: 窗體.KeyPreview = Boolean5Picture圖片屬性 設置窗體中要顯示的圖片。加載圖片操作同Icon 控制圖標屬性。 6. WindowState屬性設置一個窗體窗口運行時,窗體最小化、最大化和原形這三種可見狀態(tài)。該屬性設置可以在設計時由屬性窗口設置,WindowState屬性設置如下表:常數(shù)設置值含義v
33、bNormal0-Normal(缺省值)正常窗口狀態(tài),有窗口邊界; VbMinimized1-Minimized最小化狀態(tài),以圖標方式運行; VbMaximized2-Maximized 最大化狀態(tài),無邊框,充滿整個屏幕。WindowState屬性設置也可以在運行時通過代碼進行設置,語句格式為:窗體.WindowState = 常數(shù)或設置值4.3 窗體的主要事件4.3.1 Activate (活動事件)與Deactivate(非活動事件)1Activate事件:當對象窗體成為活動窗口時發(fā)生。2Deactivate事件:當對象窗體成為非活動窗口時發(fā)生。當一個窗體啟動(被加載)時,就發(fā)生Activ
34、ate 事件。當對多個窗體操作時,即從一個窗體切換到另一個窗體,每次切換一個窗體時,就發(fā)生Activate 事件,而前一個窗體發(fā)生Deactivate事件。例如:通過運行下面程序體會Activate 事件和Deactivate事件。 Form1程序Private Sub Form_Deactivate() Print 歡迎學習、使用Visual Basic!End SubPrivate Sub Form_click()Form2.ShowEnd Sub Form2 程序Private Sub Form_Activate() Print 歡迎學習、使用Visual Basic!End Sub4.
35、3.2 Load(裝入)與UnLoad(卸載)事件1Load(裝入)事件Load事件常用在啟動程序時,對控件屬性和程序中所用變量進行初始化。Load事件的語句格式為:Load 注意:用Load語句只是把窗體裝載到內(nèi)存,該窗體不會自動成為可視窗體。此時若在對裝載到內(nèi)存中窗體上已存在的控件設置焦點,則會提示有錯誤,因此必須使用窗體的Show方法配合,讓窗體為可視窗體。例如:執(zhí)行下面程序觀察窗體上的顯示結果。Private Sub Form_Load() 窗體裝載Dim x As Integer, y As Integerx = 10: y = 15ShowCommand1.SetFocus 對Co
36、mmand1設置焦點提示:實時錯誤 5 無效的過程調(diào)用或參數(shù)Print x+y=; x + yEnd Sub2UnLoad(卸載)事件用Unload語句,其功能與Load語句相反,清除內(nèi)存中指定的窗體。Unload事件的語句格式為:UnLoad 注意:窗體卸載后,如果要重新裝入窗體,則新裝入窗體上的所有控件都被重新初始化。4.3.3 Click(單擊)與 DblClick(雙擊)事件這兩個事件在單擊或雙擊窗體(控件)時發(fā)生。1 Click事件Click事件是在一個對象上按下然后釋放一個鼠標按鈕時發(fā)生。它也會發(fā)生在一個控件的值改變時。對一個 Form 對象來說,該事件是在單擊一個空白區(qū)或一個無效
37、控件時發(fā)生。注意:用鼠標的左鍵或右鍵單擊一個控件。對 CheckBox, CommandButton, Listbox 或 OptionButton 控件來說,Click 事件僅當單擊鼠標左鍵時發(fā)生。Click事件語句格式為:Private Sub Form_Click( )Private Sub object_Click(index As Integer)Click 事件的語句包括下列部分:部分描述object一個對象表達式,其值是“應用于”列表中的一個對象。index一個整數(shù),用來唯一地標識一個在控件數(shù)組中的控件。說明:通常,將一個 Click 事件過程附加到一個 CommandButto
38、n 控件,Menu 對象或 PictureBox 控件上用來執(zhí)行命令或類似命令的操作。對其它可應用的控件來說,使用這個事件來觸發(fā)一個動作以響應控件中的變化??捎靡粋€控件的 Value 屬性從代碼中測試該控件的狀態(tài)。單擊一個控件除了產(chǎn)生 Click 事件以外還可產(chǎn)生 MouseDown 和 MouseUp 事件。這三種事件發(fā)生的順序根據(jù)控件的不同而不同。例如,對 ListBox 和 CommandButton 控件來說,這些事件按下列順序發(fā)生:MouseDown、Click、MouseUp。但對 FileListBox,Label 或 PictureBox 控件來說,這些事件按下列順序發(fā)生:Mo
39、useDown、MouseUp 和 Click。因此,當給這些相關的事件附加事件過程時,要確保它們的操作不互相沖突。如果在應用程序中事件發(fā)生的順序是重要的,則應對控件事件發(fā)生的順序進行測試,以確定控件事件的順序。注意:不要在同一個控件上使用Click 事件又使用DlbClick 事件,這樣會使程序的執(zhí)行發(fā)生混亂,因為 Click 事件是兩個事件中首先被觸發(fā)的事件,其結果是鼠標單擊被 Click 事件截斷,從而使 DblClick 事件不會發(fā)生。例如:觀察執(zhí)行下面程序窗體Form1的DlbClick 事件永遠不會發(fā)生。Private Sub Form_Click() Hide Form2.Sho
40、wEnd SubPrivate Sub Form_DblClick() Print 歡迎學習、使用Visual Basic!End SubPrivate Sub Form_Activate() Print 預祝大家取得優(yōu)異成績!End SubPrivate Sub Form_Click() Hide Form1.ShowEnd Sub2DblClick事件對于窗體而言,當雙擊被禁用的控件或窗體的空白區(qū)域時,DblClick 事件發(fā)生。對于控件而言,DblClick 事件在以下情形下發(fā)生: 用鼠標左鍵雙擊控件。雙擊Style 屬性設置為1(Simple) 的 ComboBox 控件中的項目,或者
41、在 FileListBox 、 ListBox 、DataCombo 或 DataList控件中的項目。 Click事件語句格式為:Private Sub Form_DblClick ( )Private Sub object_DblClick (index As Integer)部分描述object對象表達式,其值是“應用于”列表中的一個對象。index如果控件在控件數(shù)組內(nèi),則這個 index 值就用來標識該控件。說明:如果控件在一個控件數(shù)組內(nèi),則這個 Index 參數(shù)唯一地標識這個控件。可以使用 DblClick 事件過程執(zhí)行一個隱式操作,如雙擊圖標來打開一個窗口或文檔。也可用這類過程執(zhí)行
42、單一操作的多個步驟,例如用雙擊在列表框中選定一項并關閉對話框。要在 VB中產(chǎn)生這類快捷效果,可以使用帶有缺省按鈕的列表框的或疊層排列文件列表框的 DblClick 事件過程;所謂缺省按鈕就是 Default 屬性設置為 True 的 CommandButton 控件。作為列表框 DblClick 事件過程的一部分,只需簡單調(diào)用缺省按鈕的 Click 事件。4.3.4 Resize 事件Resize 事件:當一個對象第一次顯示或當一個對象的窗口狀態(tài)改變時該事件發(fā)生。例如,一個窗體被最大化、最小化或被還原。此事件發(fā)生必須在ControlBox屬性設置為Ture才有效。例如:通過運行下面程序改變窗體
43、上VB 缺省圖標,具體程序如下:Private Sub Form_Resize() If Form1.WindowState = vbMinimized Then 窗體最小化 Form1.Icon = LoadPicture(C:Program FilesMicrosoft Visual StudioCOMMONGRAPHICSICONSINDUSTRYROCKET.ICO) Form1.Icon = LoadPicture(c:PLANE2.ICO) PLANE2.ICO 圖標必須在c: 目錄中,這個例子才能正常運行 End IfEnd Sub4.4窗體方法在單窗體程序(又稱為SDI 窗體)
44、設計中,所有的操作都是在一個窗體完成,不需要在多個窗體間切換。而在多窗體程序中,則需要裝入、打開、關閉、隱藏或顯示指定窗體等操作。窗體對象包含下列方法:Cls、Hide、PrintForm、Show、Move、Refresh、Print、SetFocus。其中兩個最重要的窗體方法是Show和Hide方法。4.4.1 Show方法和Hide方法1. 顯示窗體Show方法Show方法用于在屏幕上顯示一個窗體,調(diào)用 Show 方法與設置窗體 Visible 屬性為 True 具有相同的效果。如果要顯示的窗體事先未裝入,該方法會自動將窗體先裝入內(nèi)存再顯示。語句格式為: 窗體名稱. show 模式如果省
45、略窗體名稱.參數(shù),則表示顯示當前窗體;“模式”用來確定窗體的狀態(tài),其值有0和1:1) “0”表示“非模式型”(系統(tǒng)默認值),在此模式下,不但可以對本窗體進行操作,而且允許同時對其它窗體進行操作。2) “1”表示“模式型”,在此模式下,只有關閉本窗口后,才允許對其它窗體進行操作。例如:在 Form2顯示后,不將其關閉,后面的提示信息是不會顯示出來。只有關閉了Form2時,F(xiàn)orm1上才會顯示Test信息。如圖4-8:圖4-8Private Sub Form_Click() 窗體1程序調(diào)用窗體2(“模式型”)Form2.Show 1 模式型Print TestEnd Sub若把上述程序中顯示窗體2
46、為“非模式型”,當單擊Form1后,會立即將Form2顯示出來并同時在Form1上顯示Test信息。Private Sub Form_Click() 窗體1程序調(diào)用窗體2(“非模式型”) Form2.Show 0 非模式型 Print Test End Sub注意:調(diào)用Show方法和將窗體的Visible屬性設置為True效果是一樣的。例如:把窗體的屬性中將Visable屬性設為False,運行下面程序,此時不會顯示窗體。停止運行,在代碼窗中相應位置輸入“from1.show”再運行,看效果。具體程序如下:Private Sub Form_Load() Form1.Show 顯示名為Form1
47、窗體 Show 顯示當前窗體Print 看效果End Sub2.隱藏窗體用 Hide方法,可以隱藏指定的窗體,即窗體不在屏幕上顯示,但該窗體仍駐留在內(nèi)存,因此,它與UnLoad語句的作用不一樣。另外,當一個窗體從屏幕上隱去時,其Visible屬性被設置成False,并且該窗體上的控件也變得不可訪問,但對運行程序間的數(shù)據(jù)引用無影響。利用Hide方法會裝入指定窗體,但并不顯示。語句格式為:窗體名稱. Hide如果省略窗體名稱.參數(shù),則表示隱藏當前窗體例如:Form1.Hide 使Form1窗體隱藏 Me.Hide 使當前窗體隱藏 Hide 使當前窗體隱藏例如:有兩個窗體Form1、Form2,當單
48、擊窗體Form1時,窗體Form2顯示,而窗體Form1隱藏;當單擊顯示窗體Form2時,窗體Form1顯示,而窗體Form2隱藏。注意觀察程序運行結果,具體程序如下: Form1 的代碼如下:Private Sub Form_click()Form2.ShowForm1.HideEnd Sub Form2 的代碼如下:Private Sub Form_click()Form1.ShowForm2.HideEnd Sub例如:實現(xiàn)將指定的窗體在屏幕上進行顯示或隱藏的切換。為了實現(xiàn)這一功能,可以在窗體Forml的“代碼”窗口中輸入下列代碼:Private Sub Form_Click()Form
49、1.Hide 隱藏窗體MsgBox 單擊按鈕,使窗體重現(xiàn)屏幕 顯示信息Form1.Show 重現(xiàn)窗體End Sub4.4.2 Cls方法Cls方法用來清除清除運行時在窗體或圖片框中顯示的文本或圖形。語句格式為: 窗體名稱. Cls說明:使用Cls方法后,圖形坐標中兩坐標軸的x與y值均被置為0;不能清除窗體在設計時添加的控件及用Picture屬性裝入的圖形;“對象”選項省略時指窗體。注意:清屏后坐標當前回到原點,即對象的左上角0,0 。4.4.3 Move方法Move方法用于移動窗體或控件,并改變其大小。語句格式為:對象.Move ,上邊距離,寬度,高度說明:1) “對象”可以是除時鐘、菜單外的
50、所有控件,若省略“對象”, 則默認“對象”為窗體。2) 左邊距離、上邊距離、寬度、高度:數(shù)值表達式,以twip(緹)為單位。如果對象是窗體,則“距離”以屏幕為參照;若為“控件”,則以窗體為參照。如圖4-9所示:圖4-9例如:窗體的高度為3600緹,寬度為2900緹。運行后窗體位于屏幕中央;若單擊窗體,窗體由上向下移動,當窗體距屏幕頂端距離加窗體高度大于屏幕高度,則窗體返回窗體初始位置Top=100、Left=100。請編寫程序。Private Sub form_Click() 手動Form1.Move Form1.Left, Form1.Top + 500 If Form1.Top + For
51、m1.Height Screen.Height Then Form1.Left = 100 Form1.Top = 100 End IfEnd SubPrivate Sub Form_Load()Form1.Height = 3600Form1.Width = 2900Form1.Left = (Screen.Width - Form1.Width) / 2 窗體居中Form1.Top = (Screen.Height - Form1.Height) / 2End Sub注:Height 、Width 屬性指窗體的外部高度和寬度,包括邊框和標題欄。例如:將圖形控件移到窗體的中心,見圖4-10。
52、具體程序如下: Private Sub Form_Click()Picture1.Move (Form1.ScaleWidth - Picture1.Width) / 2, (Form1.ScaleHeight - Picture1.Height) / 2End Sub 圖4-10例如:窗體設計見圖4-11,編寫程序?qū)崿F(xiàn)窗體上相應按鈕功能,具體程序如下:Dim step1 As IntegerPrivate Sub Command3_Click()step1 = 1 Timer1.Interval = 0End SubPrivate Sub Command4_Click()EndEnd SubPrivate Sub Form_Load() step1 = 1 Timer1.Interval = 0End SubPrivate Sub Command2_Click() 手動 Timer1.Interval = 0 Call MyMoveEnd SubPrivate Sub Command1_Click() 自動 Timer1.Interval = 200End SubPrivate Sub Timer1_Timer() Static Flag As Boolean If Flag
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 主管工作總結的目標達成計劃
- 個人激勵居民參與社區(qū)建設計劃
- 突破瓶頸實現(xiàn)團隊持續(xù)發(fā)展的方案計劃
- 2025基于大數(shù)據(jù)的互聯(lián)網(wǎng)居家養(yǎng)老綜合智能服務
- 優(yōu)化倉庫設備維修流程的工作計劃
- 跨境電商平臺商品質(zhì)量監(jiān)管機制
- 跨境電商品牌建設中的法律風險防控
- 高等教育餐廳豪華酒店式的設計與體驗
- 超市清潔消毒工作的管理與培訓體系
- 資金籌措與教育公平的平衡
- 2025年安全員C證(專職安全員)考試題庫
- 地理-天一大聯(lián)考2025屆高三四省聯(lián)考(陜晉青寧)試題和解析
- 醫(yī)療衛(wèi)生系統(tǒng)招聘考試(中醫(yī)學專業(yè)知識)題庫及答案
- 部編版小學五年級下冊《道德與法治》全冊教案含教學計劃
- 8款-組織架構圖(可編輯)
- 培智康復課教案模板(共7篇)
- 領導干部道德修養(yǎng)1
- Chapter-1-生物信息學簡介
- 中國郵政銀行“一點一策”方案介紹PPT課件
- 青果巷歷史街區(qū)改造案例分析
- 中學生班干部培訓方案(共4頁)
評論
0/150
提交評論