VB程序設計第6章--窗體與基本控件-PPT課件_第1頁
VB程序設計第6章--窗體與基本控件-PPT課件_第2頁
VB程序設計第6章--窗體與基本控件-PPT課件_第3頁
VB程序設計第6章--窗體與基本控件-PPT課件_第4頁
VB程序設計第6章--窗體與基本控件-PPT課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第6章 窗體與基本控件6.1 對象的基本屬性本節(jié)介紹VB內部控件的基本屬性,多數的控件或窗體都具有這些屬性。6.1.1 屬性的分類對象的屬性分為3種:只讀屬性、運行時只讀屬性和可讀寫屬性。只讀屬性:運行時只讀屬性:可讀寫屬性:6.1.2 對象的基本屬性(1)Name名稱屬性(2)Caption標題屬性(3)Width、Height與Left、Top屬性,Width和Height屬性分別表示對象的寬度和高度,即對象的大小。Left和Top屬性分別是控件的左邊到其容器的左邊,控件的上邊到其容器的上邊的距離,即對象的位置。對于窗體,Top表示窗體到屏幕頂部的距離,Left表示窗體到屏幕左邊的距離。6

2、.1.2 對象的基本屬性(4)Visible屬性該屬性決定對象是否可見。True:程序運行時控件可見。False:程序運行時控件隱藏起來,不可見,但控件本身還存在。(5)Enabled屬性該屬性決定對象是否是有效。True:允許用戶操作,并對操作作出響應。False:禁止用戶操作,呈暗淡色。(6)Appearance屬性該屬性是窗體與有邊框的控件都具有的一個屬性,它的值決定了邊框的繪制樣式。它的取值有兩個:0表示以平面樣式繪制,沒有立體效果。1表示以立體樣式繪制邊框。6.1.2 對象的基本屬性(7)BorderStyle屬性該屬性用來設置窗體和控件邊框樣式。BorderStyle屬性在運行時是

3、只讀的。0-None:控件周圍沒有邊框。1-Fixed Single:控件帶有單邊框。(8)Font屬性該屬性改變文字的外觀,其“字體”對話框如圖6.2所示。FontName屬性是字符型,決定了控件上正文的字體。FontSize屬性是整型,決定了控件上正文的字體大小,以磅為單位。 FontBold屬性是邏輯型,表示控件上正文是否是粗體。FontItalic屬性是邏輯型,表示控件上正文是否是斜體。FontStrikethru屬性是邏輯型, 表示控件上正文是否加刪除線。FontUnderline屬性是邏輯型,表示控件上正文是否帶下劃線。6.1.2 對象的基本屬性(9)ForeColor屬性該屬性用

4、來設置對象的前景顏色,即正文和作圖時的顏色。其值是一個16進制常數,用戶可以在調色板中直接選擇所需要的顏色。(10)BackColor屬性該屬性用來設置對象的背景顏色,即正文以外的顯示區(qū)域的顏色。(11)FillColor屬性該屬性用來設置填充封閉圖形所用的顏色。(12)BackStyle屬性該屬性用來設置背景風格。0-Transparent:透明顯示,即控件背景顏色顯示不出來,若控件后面有其他控件或背景,均可設置為透明顯示。1-Opaque:不透明,此時可為控件設置背景顏色。6.1.2 對象的基本屬性(13)Alignment屬性該屬性決定控件上正文水平對齊方式。0-Left Justify

5、: 正文左對齊。 1-Rigth Justify: 正文右對齊。2-Center:正文居中。(14)AutoSize屬性該屬性決定控件是否根據正文自動調整大小。True:自動調整大小。False:保持原來設計時的大小,正文若太長多余部分會被隱藏掉。默認為False。6.1.2 對象的基本屬性(15)WordWarp屬性該屬性決定文本在垂直方向上是否改變顯示區(qū)域的大小。WordWarp屬性必須是在AutoSize屬性設置為True時,WordWarp屬性才有效。True:表示按照文本和字體大小在垂直方向上改變顯示區(qū)的大小,而在水平方向上不發(fā)生變化。False:表示在水平方向上按正文長度放大和縮小

6、;在垂直方向上以字體大小來放大或縮小顯示區(qū)。(16)Tag屬性每一個窗體和控件都有一個Tag屬性,VB內部并不使用這個屬性,只是在程序中利用它來標識對象實例。6.1.2 對象的基本屬性(17)ToolTipText屬性這是每一個可視控件都具有的屬性,它用于返回或設置當鼠標在控件上暫停時顯示的文本(提示信息)。(18)TabIndex屬性該屬性決定了當用戶按Tab鍵時,焦點在各個控件轉移的順序。焦點是接收用戶鼠標或鍵盤輸入的能力。當對象具有焦點時,可接收用戶的輸入。在Windows環(huán)境下,可同時運行多個應用程序,有多個窗口,但焦點只能有一個。焦點能由用戶或應用程序設置。當在窗體上有多個控件時,對

7、于大部分控件,VB會給它分配一個Tab鍵順序,所謂Tab鍵順序,就是按Tab鍵時,焦點在各個控件上移動的順序。一般,其順序與控件建立的順序相同,若要改變此順序,可以設置控件的TabIndex屬性,TabIndex屬性決定了它在Tab中的位置。按默認值規(guī)定,第一個建立的控件的TabIndex屬性值為0,第二個為1,依次類推。在設計時用屬性窗口或在運行時用代碼可改變控件的TabIndex屬性。運行時,不可見或無效的控件以及不能接收焦點的控件(如Frame、Lablel等控件),仍保持在Tab鍵順序中,但切換時要跳過這些控件。6.1.2 對象的基本屬性(19)TabStop屬性TabStop屬性返回

8、或設置一個值,該值用來指示是否能夠使用Tab鍵將焦點從另一個對象移動到這個對象上。當一個控件的TabStop屬性設置為False時,用Tab鍵就不能使該控件獲得輸入焦點,只有那些可以獲得輸入焦點的控件才具有該屬性。【例6.1】在窗體上建立一個命令按鈕:Command1,一個標簽框:Label1,運行結果如圖6.3所示?!纠?.2】窗體上有6個標簽:Label1Label6,每個標簽的寬度和高度相同,其屬性設置如表6.1所示,運行結果如圖6.4所示。6.2 窗體的屬性、事件和方法6.2.1 窗體的常用屬性1.窗體基本屬性1.窗體基本屬性包括:Name、Caption、Height、Width、L

9、eft、Top、Font、Enabled、Visible、ForeColor、BackColor屬性等。2.窗體的特有屬性(1)MaxButton屬性指定窗體標題欄的最大化按鈕是否有效。只能在屬性窗口中設置。True:窗體右上角有最大化按鈕。False:窗體右上角無最大化按鈕。窗體的特有屬性(2)MinButton屬性指定窗體標題欄中的最小化按鈕是否有效。只能在屬性窗口中設置。True:窗體右上角有最小化按鈕。False:窗體右上角無最小化按鈕。(3)ControlBox屬性該屬性指定是否在窗體左上角有控制菜單框。該屬性在運行時是只讀的。True:在窗體左上角有控制菜單框。False:在窗體左

10、上角無控制菜單框。窗體的特有屬性(4)WindowState屬性該屬性表示窗體執(zhí)行時以什么狀態(tài)顯示。0Normal:正常窗口狀態(tài),有窗口邊界。1Minimized:最小化狀態(tài),以圖標方式運行。2Maximized:最大化狀態(tài),無邊框,充滿整個屏幕。(5)Icon屬性在屬性窗口中,可以單擊Icon設置框邊的(省略號),打開一個“加載圖標”對話框,用戶可以選擇一個圖標文件裝入,當窗體最小化時,以該圖標顯示。(6)Moveable屬性指定用戶是否可以用拖動窗口標題欄來移動窗口。若其值為Ture,則可以移動。窗體的特有屬性(7)ShowInTaskbar屬性指定一個窗體對象在運行時的窗口是否出現在Wi

11、ndows任務欄中。若它的值為True,則出現在任務欄中。該屬性在運行時是只讀的。(8)BorderStyle屬性指定窗體的邊框樣式。改變此屬性值,會改變MinButton、MaxButton和ShowInTaskbar屬性的設置值。(9)Picture屬性該屬性設置在窗體或控件中顯示的圖片。在設計時,單擊屬性窗口中Picture屬性右端的(省略號),可以打開一個“加載圖片”對話框,用戶可以選擇一個圖形文件裝入。圖片框Picture控件,也具有Picture屬性。6.2.2 窗體的常用事件窗體的事件較多,一般分鼠標事件、鍵盤事件、窗體裝載事件等,下面分別介紹。1.鼠標事件所謂鼠標事件是指由用戶

12、操作鼠標而引發(fā)的但能被VB中的各種對象識別的事件。鼠標有五個事件:Click、DblClick、MouseDown、MouseUp和MouseMove事件。(1)Click(單擊)事件(2)DblClick(雙擊)事件(3)MouseDown(按下鼠標)事件(4)MouseUp(釋放鼠標)事件(5)MouseMove(移動鼠標)事件如果是雙擊一個控件時,將按順序產生下列事件:MouseDown、MouseUp、Click、DblClick和MouseMove事件。窗體的事件2.鍵盤事件鍵盤事件包括:KeyPress、KeyDown和KeyUp事件。(1)KeyPress事件(2)KeyDown

13、事件(3)KeyUp事件3.其他事件(1)Load(裝入)事件(2)Unload(卸載)事件(3)Activate(活動)和DeActivate(非活動)事件(4)Paint(繪畫)事件6.2.3 窗體的常用方法1.Move方法Move方法是幾乎任何一個可視對象都具有的方法。它的作用是改變對象的位置和大小。格式:對象.Move Left ,Top ,Width ,Height功能:用來移動窗體和控件,并可以改變其大小。說明:對象是窗體或控件。2.SetFocus方法窗體對象和可以獲得輸入焦點的對象都具有此方法。調用對象的此方法后,任何輸入將指向該對象。此方法不需要任何參數。只有當對象已經顯示并

14、且其Enabled屬性為True時,才可調用對象的這個方法。6.2.4 控件的常用事件鼠標事件:Click、DblClick、MouseDown、MouseUp、MouseMove事件。鍵盤事件:KeyDown、KeyUp、KeyPress事件。6.2.5 LoadPicture函數如果要在窗體、圖片框、圖像框中裝入圖片,除了在設計中用屬性窗口裝載外,還可以在程序中使用LoadPicture函數。格式:對象名.Picture=LoadPicture(文件名)功能:LoadPicture是一個函數,用來將指定圖形文件調入內存?!纠?.3】在窗體中裝入圖形作為背景,當用戶單擊窗體或雙擊窗體時,顯示

15、的標題、圖形和文字都有所不同。6.8 DblClick事件的運行效果 【例6.4】設計一個程序,在窗體上添加四個圖像框,當用戶在窗體上移動鼠標,四個圖形文件就會裝入圖像框。當用戶在窗體內移動鼠標時,就會發(fā)生MouseMove事件,執(zhí)行Form_MouseMove過程語句將四個圖形文件分別裝入四個圖像框中。程序的執(zhí)行屏幕如圖6.10所示。將上述程序代碼剪切到MouseUp事件中,釋放鼠標也能將四個圖形文件分別裝入四個圖像框中。6.8 DblClick事件的運行效果【例6.5】用窗體鍵盤的KeyDown事件,在窗體上畫一個圓。如圖6.11所示。【例6.6】用窗體的單擊Click事件,在窗體上和圖片

16、框上各畫一個圓。如圖6.12所示?!纠?.7】利用KeyPress事件,在窗體上顯示按鍵的ASCII碼及對應的字符。如圖6.13所示?!纠?.8】利用KeyPress事件,可以對輸入的數據進行過濾。如圖6.14所示?!纠?.9】使用Move方法使窗體移動并改變其大小。如圖6.15所示。6.3 多窗體在集成開發(fā)環(huán)境中,使用“工程添加窗體”菜單,就可以在一個工程中使用多個窗體。被設置為啟動對象的窗體在程序運行之初會被自動加載和顯示,但是只能在工程屬性中設置一個窗體模塊為啟動對象。當啟動對象是Sub Main過程時,要顯示窗體或當顯示一個窗體后再顯示其他的窗體,就要考慮窗體的加載、顯示、隱藏和卸載問

17、題。6.3.1 加載窗體加載窗體使用Load語句。格式:Load 窗體名功能:加載窗體到內存。說明:加載窗體只是將這個窗體對象裝入內存,但并不顯示這個窗體對象。此語句只是需要在初始化時加載所有的窗體并在以后需要他們的時候顯示。當VB加載窗體時,先把窗體的各屬性設置為初始值,再執(zhí)行Load事件。6.3.2 顯示窗體顯示一個窗體就要把它的Visible屬性設置為True。顯示一個窗體還可以用窗體對象的Show方法。格式:窗體名.Show功能:將窗體顯示在屏幕上。說明:如果在調用一個窗體的Show方法時,指定的窗體尚未加載,VB將自動裝載該窗體。6.3.3 隱藏窗體把一個窗體的Visible屬性設置

18、為False或使用它的Hide方法,就可以把窗體隱藏。格式:窗體名.Hide功能:將窗體隱藏起來。說明:隱藏窗體并不把窗體從內存中卸載,只是變得不可見。在使用Visible屬性或Hide方法隱藏窗體時,如果窗體尚未加載,則VB會加載該窗體,但不會讓它顯示出來。6.3.4 卸載窗體窗體用完后可以卸載窗體,要用Unload語句。Unload語句的語法格式與Load語句相同。格式:UnLoad 窗體名功能:將窗體從內存中卸載下來。說明:當卸載一個窗體時它的子窗體也會被卸載。6.3.5 建立多窗體1.建立多窗體的操作步驟2.啟動窗體【例6.10】設計一個具兩個窗體的程序,在每個窗體中裝入一幅畫?!纠?

19、.11】設計一個程序,當在窗體上選擇“輸入成績”按鈕后,屏幕就彈出一個輸入學生成績窗體,用戶可以輸入學生的每科成績,輸入完成,單擊“計算”按鈕,屏幕就彈出計算總分與平均分的窗體,并計算出學生的總分與平均分。6.4 鼠標事件與鍵盤事件6.4.1 鼠標事件 MouseDown、MouseUp和MouseMove三個鼠標事件過程如下(以Form對象為例):Sub Form_MouseDown(Button As Integer,Shift As Integer, X As Single,Y As Single) Sub Form_MouseUp(Button As Integer,Shift As

20、Integer, X As Single,Y As Single) Sub Form_MouseMove(Button As Integer,Shift As Integer, X As Single,Y As Single)這三個鼠標事件過程具有相同的參數,他們把鼠標的信息傳給過程。6.4.1 鼠標事件(1)Button:被按下的鼠標按鈕,可以取以下3個值,如表6.5所示。(2)Shift:表示Shift、Ctrl和Alt的狀態(tài)。如表6.7所示。(3)X,Y:這兩個值對應于當前鼠標的位置,采用ScaleMode屬性指定的位置。說明:(1)有些鼠標只有兩個按鈕,或者雖有3個按鈕,但Window

21、s鼠標驅動程序不能識別中間按鈕。在這種情況下,表6.6中的后4個參數值不能使用。6.4.1 鼠標事件表6.5 Button按鈕的3個取值符號常量 值 作 用 LEFT_BUTTON 1 按下鼠標左按鈕RIGHT_BUTTON 2 按下鼠標右按鈕MIDDLE_BUTTON 4 按下鼠標中間按鈕表6.6 Button按鈕狀態(tài)十進制 二進制 作 用 0 000 沒按下任何按鈕 1 001 左鍵被按下(默認) 2 010 右鍵被按下 3 011 左、右按鈕同時被按下 4 100 中間按鈕被按下 5 101 同時按下中間和左按鈕 6 110 同時按下中間和右按鈕 7 111 3個按鈕同時被按下6.4.1

22、 鼠標事件(2)對于單按鼠標器,它的按鈕定義為左按鈕。如果鼠標帶兩個按鈕,并使用Windows的控制面板交換了鼠標器的左、右鈕,那么,當按右按鈕時,VB認為是按了左按鈕。例如,如果按住Ctrl鍵,然后在坐標為(2000,3000)的點上按下鼠標器右鍵,則立即調用Form_MouseDown過程,釋放鼠標右鍵時,調用Form_MouseUp過程。此時Button、Shift、X、Y這四個參數的值分別為2、2、2000和3000。6.4.1 鼠標事件(3)Shift是轉換鍵,它指的是3個轉換狀態(tài),包括Shift、Ctrl和Alt。這3個鍵分別以二進制方式表示,每個鍵用三位,即:Shift鍵為001

23、,Ctrl鍵為010,Alt鍵為100。當按下Shift鍵時,Shift參數的值為001(十進制數1),當按下Ctrl鍵時,Shift參數的值為010(十進制數2),而按下Alt鍵時,Shift參數的值為100(十進制數4)。如果同時按下兩個或三個轉換鍵,則Shift參數的值即為上述兩者或三者之和。因此,Shift參數共可取8種值,如表6.7所示。表6.7 Shift參數的值十進制 二進制 作 用 0 000 沒有按下轉換鍵 1 001 按下一個Shift鍵 2 010 按下一個Ctrl鍵 3 011 按下一個Ctrl+Shift鍵 4 100 按下一個Alt鍵 5 101 按下一個Alt+S

24、hift鍵 6 110 按下一個Alt+Ctrl鍵 7 111 按下一個Alt+Ctrl+Shift鍵6.4.2 鍵盤事件當控制焦點置于某對象上,同時用戶按下鍵盤中的任一鍵,便會使對象引發(fā)KeyDown事件,釋放按鍵便引發(fā)對象的KeyUp事件。與KeyPress事件不同,KeyUp事件和KeyDown事件返回的是被按下或釋放的鍵盤掃描碼和組合鍵的狀態(tài)。其事件過程形式如下: Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) Sub object_KeyDown(Index As Integer,KeyCode As Integer,Shift As Integer) Sub Form_KeyUp(KeyCode As Integer,Shift As Integer) Sub object_KeyUp(Index As Integer,KeyCode As Integer,Shift As Integer)6.4.2 鍵盤事件其中:(1)KeyCode參數是用戶所操作的那個鍵的掃描代碼,它告訴事件過程,用戶操作的物理鍵,也就是說,大寫字母和小寫字母使用同一個鍵,他們的KeyCode相同。對于有上檔字符和下檔字符的鍵,其KeyCode也是相同的,即為下

溫馨提示

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

評論

0/150

提交評論