VisualBasic程序設(shè)計(jì)第2章VB可視化編程初步_第1頁
VisualBasic程序設(shè)計(jì)第2章VB可視化編程初步_第2頁
VisualBasic程序設(shè)計(jì)第2章VB可視化編程初步_第3頁
VisualBasic程序設(shè)計(jì)第2章VB可視化編程初步_第4頁
VisualBasic程序設(shè)計(jì)第2章VB可視化編程初步_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Visual Basic 程序設(shè)計(jì)7/23/20221第二講VB可視化編程初步 7/23/20222內(nèi)容簡介本章以一個簡單的時鐘應(yīng)用程序開發(fā)為主線:詳細(xì)介紹窗體、文本框、標(biāo)簽和命令按鈕等常用控件事件和事件過程以及事件驅(qū)動程序設(shè)計(jì)的基本原理MsgBox函數(shù)、賦值語句的使用方法。通過本章的學(xué)習(xí),你將熟悉Visual Basic開發(fā)應(yīng)用程序的全過程,領(lǐng)略到VB可視化編程的魅力,為進(jìn)一步深入學(xué)習(xí)奠定基礎(chǔ)。 7/23/20223學(xué)習(xí)目標(biāo) 掌握VB應(yīng)用程序開發(fā)的一般步驟。掌握命令按鈕、文本框和標(biāo)簽的使用和MsgBox函數(shù)的用法。理解賦值語句、變量的概念,理解對象、屬性、方法和事件的概念及其之間的區(qū)別和聯(lián)系

2、,理解事件驅(qū)動的原理。了解時鐘程序的工作原理。 7/23/202242.1“時鐘程序”任務(wù) 在實(shí)際工作中,為了準(zhǔn)確的控制時間,經(jīng)常需要用到計(jì)時器,現(xiàn)在我們就來創(chuàng)建一個倒計(jì)時的簡單應(yīng)用程序。該程序的功能是:當(dāng)在文本框內(nèi)輸入倒計(jì)時的分鐘數(shù)后,單擊“開始”按鈕就開始倒計(jì)時,倒計(jì)時結(jié)束時,彈出“時間到!”的信息框。 7/23/20225任務(wù)描述界面設(shè)計(jì)代碼設(shè)計(jì)保存和運(yùn)行程序編譯與打包安裝運(yùn)行VB應(yīng)用程序開發(fā)的一般步驟時鐘程序任務(wù)時鐘程序任務(wù)任務(wù)描述程序運(yùn)行:出現(xiàn)輸入分鐘數(shù) 時間到: 出現(xiàn) 7/23/202262.1.1任務(wù)描述 啟動界面 7/23/20227輸入1分鐘數(shù)字界面 7/23/20228倒計(jì)

3、時進(jìn)行中界面 7/23/20229倒計(jì)時結(jié)束界面 7/23/202210212 界面的設(shè)計(jì) 1 新建工程并創(chuàng)建窗體啟動VB 在“新建工程“對話框中,選擇“標(biāo)準(zhǔn)EXE ”單擊“打開”。2 向窗體中添加控件 調(diào)整窗體的大小為合適,向窗體中添加:一個標(biāo)簽、一個文本框、一個命令按鈕和一個計(jì)時器控件。7/23/202211 通過鼠標(biāo)單擊“工具箱”中的控件,在窗體上劃出相應(yīng)的控件。7/23/2022123 設(shè)置對象屬性(1)單擊Form1窗體,選定它。在屬性窗口中選中Form1,將Caption 的屬性改為“倒計(jì)時器”(2)單擊窗體上的“Label1”控件,將Caption的屬性改為清輸入倒計(jì)時的分鐘數(shù),

4、將Autosize屬性改為true (3)將命令按鈕command1的Caption屬性改為“開始“。(4)將text1 的Alignment屬性改為“2-center”.(5)將計(jì)時器控件timer的Interval的屬性值設(shè)為1000(1秒),Enabled屬性設(shè)為False.7/23/2022132.1.3代碼設(shè)計(jì) (1)代碼編輯器“通用”區(qū)代碼Dim m As Long 聲明一個變量 (2)Command1控件代碼Private Sub Command1_Click()使計(jì)時器控件開始工作Timer1.Enabled = True 將分鐘數(shù)轉(zhuǎn)換為秒數(shù),并保存在m變量中m = Val(T

5、ext1.Text) * 60 改變標(biāo)簽控件的標(biāo)題Label1.Caption = 現(xiàn)在開始倒計(jì)時使用命令按鈕不可見Command1.Visible = False End Sub7/23/2022142.1.3代碼設(shè)計(jì) (3)Timer1控件代碼Private Sub Timer1_Timer()當(dāng)Timer1.Enabled=Ture是,本程序每秒自動執(zhí)行一次每運(yùn)行一次,就將m變量的值減1秒m = m 1If m 0 Then 如果倒計(jì)時結(jié)束(即m=0)則:Timer1.Enabled = False 關(guān)閉計(jì)時器MsgBox 時間到!, 0, 倒計(jì)時Label1.Caption = 請輸入

6、計(jì)時的分鐘數(shù)Text1.Text = 清空文本框Command1.Visible = True 使命令按鈕可見Else 否則顯示倒計(jì)時數(shù)Text1.Text = mEnd IfEnd Sub 7/23/2022152.1.4保存和運(yùn)行程序 1保存工程 單擊“文件”菜單中的“保存工程” 2運(yùn)行程序 單擊工具欄中的啟動按鈕,或者按F5鍵開始運(yùn)行該應(yīng)用程序。 7/23/2022162.1.5編譯與打包 1編譯應(yīng)用程序 單擊“文件”菜單中的“生成Timer.exe”選項(xiàng) 2打包 創(chuàng)建一個安裝程序來發(fā)布文件 Package&Deployment向?qū)?7/23/2022172.1.6 VB應(yīng)用程序開發(fā)的一

7、般步驟 1設(shè)計(jì)應(yīng)用程序界面2設(shè)置對象屬性3編寫代碼4保存和運(yùn)行工程5編譯與打包6安裝運(yùn)行 7/23/2022182.2 程序代碼分析2.2.1 變量 是指在程序運(yùn)行過程中其值可以改變的那些量。 當(dāng)執(zhí)行了Dim語句后,VB程序就會在計(jì)算機(jī)內(nèi)存中預(yù)留一個區(qū)域,準(zhǔn)備存放數(shù)據(jù)。變量命名規(guī)則:第一個字符必須是字母其它字符只能是字母、數(shù)字、下劃線最后一個字符可以是類型說明符變量名最長可達(dá)255個字符不能與保留字重名,如Input盡量使用有意義的名字7/23/202219聲明變量隱式聲明:變量不經(jīng)聲明直接使用,此時該變量將被賦予缺省的類型和值如:class=3 class為整型 name=張三 name為字

8、符串顯式聲明:變量聲明后再使用 強(qiáng)制顯式聲明工具/選項(xiàng)/編輯器/要求變量聲明代碼編輯器/對象列表中選通用,在聲明區(qū)加入聲明option explicit7/23/202220使用Dim語句聲明變量一般格式:Dim 變量名 As 變量類型例:Dim num As Integer 聲明num為整型變量Dim test As long, today As Date 同時聲明test為長整型,today為日期型Dim str As string,value 聲明str為一變長字符串,value為不定類型7/23/202221全局變量的聲明 全局變量是可以在工程中的所有程序模塊使用的變量。使用關(guān)鍵字Pu

9、blic和Global 如:Public test1 As Integer Global test2 As Byte7/23/202222表 VB的標(biāo)準(zhǔn)數(shù)據(jù)類型數(shù)據(jù)類型類型名稱類型聲明字符所占字節(jié)字節(jié)型Byte10255布爾型Boolean2整型Interger%2長整型Long&4單精度型Single!4雙精度型Double#8貨幣型Currency8日期型Date8對象型Object4變長字符串型String$字符串長度,1字節(jié)/字符定長字符串型String *Num$Num可變類型Variant不定7/23/2022232.2.2賦值語句格式:變量名=表達(dá)式或 對象名.屬性名=表達(dá)式注意

10、:1、不要把賦值號“=”與數(shù)學(xué)中的等號相混淆 m=m-12、賦值號“=”左邊必須是變量名或?qū)ο髮傩?,?”右邊是表達(dá)式,其值可以是常量、變量、函數(shù)或是它們的混合運(yùn)算式 m=val(text1.text)*60 z=x+y b=1 c=b*2+2 label1.caption=“現(xiàn)在開始倒計(jì)時”7/23/2022242.2.3 MsgBox語句和函數(shù)的使用 MsgBox函數(shù)的格式: 變量=msgbox(提示信息,對話框類型,對話框標(biāo)題)MsgBox命令語句的格式:msgbox 提示信息,對話框類型,對話框標(biāo)題 MsgBox函數(shù)各參數(shù)使用與MsgBox語句函數(shù)相同,但是MsgBox語句沒有返回值。

11、 7/23/202225參數(shù)說明:(1)“提示信息”指定在對話框中出現(xiàn)的文本。(2)“對話框標(biāo)題”指定了對話框的標(biāo)題。(3)“對話框類型”是可選項(xiàng),用來指定對話框中出現(xiàn)的按鈕和圖標(biāo),見(p32表2.1、表2.2、表2.3),該參數(shù)的值有三類數(shù)值相加產(chǎn)生,這三類數(shù)值分別表示按鈕的類型、顯示圖標(biāo)的種類和默認(rèn)按鈕的位置。 msgbox “時間到!”,0,”倒計(jì)時”(4)函數(shù)返回值 見p32表2.47/23/202226編寫程序利用MsgBox函數(shù)創(chuàng)建對話框 Private Sub Form_Click() msgtitle$=考生登錄信息提示 msg1$=準(zhǔn)考證號輸入有誤,請重新輸入正確的號碼! w

12、=MsgBox(msg1$,37,msgtitle$) Print wEnd Sub7/23/202227例如:執(zhí)行下列語句 private sub command1_click() msgbox(“除數(shù)不能為0!”,vbokcancel,”輸入數(shù)據(jù)錯誤”) end subP33例如:執(zhí)行下列語句 private sub command1_click() a=msgbox(“密碼不正確”,2+32+0,”標(biāo)題”) if a=3 then end 如果選擇了“終止”按鈕則程序結(jié)束 end if end subP337/23/202228例如:執(zhí)行下列語句 private sub command1

13、_click() msgbox “密碼不正確,”+chr(13)+”請重新輸入!” end subP337/23/2022292.3 窗體及基本控件 2.3.1 對象的概念、屬性、事件及方法 1 對象的概念簡單的說,對象就是代碼和數(shù)據(jù)的封裝體。VB中,我們將窗體、標(biāo)簽、文本框、命令按鈕和時鐘控件等都可以理解為對象。 2 屬性屬性是一個對象的基本特征,每一個對象都有自己的屬性。常見的對象的屬性有標(biāo)題(Caption)、名稱(mane)、顏色(color)、字體(font)、是否可見(Visible)等。7/23/202230各屬性通常都有默認(rèn)值,如果不改變采用默認(rèn)值。(1)在設(shè)計(jì)階段,通過屬性窗

14、口來改變各屬性值。 (2)在程序代碼中,使用賦值語句設(shè)置對象的屬性 格式:對象名.屬性名=屬性值 例如: Label1.Caption=”現(xiàn)在開始倒計(jì)時”7/23/2022313 方法一般說,方法就是要執(zhí)行的動作,可理解為VB提供的一種特殊的過程和函數(shù),已將一些通用的函數(shù)和過程編寫好并封裝起來,如:打印(print)、顯示窗體(show)、清除(cls)和移動(move)等調(diào)用對象的方法格式為:對象名. 方法名例如: form1.print “你好!” 4 事件事件就是在對象上發(fā)生的事情, 在VB中,系統(tǒng)是預(yù)先為每個對象定義好了一系列事件.例如:單擊事件(click)、雙機(jī)事件(dblclic

15、k)、裝入事件(load)、改變事件(change)和鼠標(biāo)移動事件(mousemove)等.鼠標(biāo)單擊(事件)命令按鈕(對象)調(diào)用打?。ǚ椒ǎ?7/23/2022322.3.2窗體(Form) 窗體的結(jié)構(gòu)7/23/202233232 窗體 窗體(Form)是用戶界面最基本的構(gòu)造模塊,也是創(chuàng)建應(yīng)用程序所使用的主要對象之一。窗體有自己的屬性、事件和方法,以便控制窗體的外觀和行為。窗體又是其他對象 的載體和容器,幾乎所有的控件都是在窗體上的。窗體運(yùn)行以后,就是應(yīng)用程序的窗口。7/23/2022341 窗體的基本屬性 設(shè)置窗體的屬性有兩種方法,一種使用屬性窗口,另一種是在代碼編輯器中使用代碼命令。 常見

16、的窗體屬性有以下幾種:(1)Name屬性 用于設(shè)置窗體名稱,默認(rèn)名稱為Form1, Name屬性只能在屬性窗口中設(shè)置。(2)Caption 屬性 用于設(shè)置顯示在標(biāo)題欄上的窗體的標(biāo)題,在屬性窗口和代碼編輯器均可設(shè)置。其默認(rèn)值同窗口名稱相同。如:窗體名稱.Caption=”標(biāo)題”7/23/202235(3) MaxButton和MinButton屬性各有兩個屬性True和False,分別表示標(biāo)題欄上是否有最大化和最小化按鈕.(4) BorderStyle邊框樣式屬性 表2.5所示(5) Picture屬性 設(shè)置窗體上要顯示的圖片,可以用語句: 對象.picture=loadpicture(“文件名

17、”)(6) Icon屬性 用于設(shè)置窗體標(biāo)題欄上的圖標(biāo).(7) visible 屬性 用于設(shè)置窗體是否可見.(8) WindowsState屬性 用來設(shè)置窗體運(yùn)行時窗體的顯示狀態(tài)0-Normal ,1-Minimized,2-Maximized7/23/202236 2 窗體的常用方法 (1) show 方法用于快速先是一窗體,與窗體的visible屬性設(shè)置位為true一樣.Form1.showForm1.visible=true (2) Hide 方法其功能是隱藏窗體, 與窗體的visible屬性設(shè)置位為false 一樣Form1.HideForm1.visible=false(3) prin

18、t 方法 用于在窗體或圖片框上輸出文本private sub form_load() dbug.print “print 方法可以在窗體上打印文本”end sub.7/23/202237(4) cls 方法 用于清除運(yùn)行時在窗體和圖片框中顯示的文本和圖片.picture.cls 清除圖片框中的圖片cls 清除窗體上的文本(5) move 方法 將窗體已到指定位置,如: form1.move(0,0) 將窗體一到左上角。 7/23/2022383 窗體的常用事件 窗體的常用事件有 (通過代碼編輯器) (1)click 單擊事件 單擊窗體是發(fā)生 (2)DblClick 事件 雙擊窗體是發(fā)生。 (3

19、)load 事件裝在窗體是發(fā)生。 (4)Unload事件當(dāng)單擊窗體上的”關(guān)閉”和或使用Unload語句時觸發(fā)該事件. (5) Activate 和 DeActivate事件 當(dāng)一個窗體變成活動窗體時,就會觸發(fā)Activate事件.當(dāng)窗體不再是活動窗體時就會觸發(fā)DeActivate事件7/23/2022394 窗體事件演示程序 事例: 設(shè)計(jì)一窗體,是標(biāo)題欄上無最大化和最小化按鈕;運(yùn)行后將窗體的顏色設(shè)置為黃色;單機(jī)窗體時窗體變寬;雙擊窗體時退出.7/23/2022402.3.3 命令按鈕 其主要功能是通過命令按鈕來調(diào)用Click 事件過程。控制開始、中斷、結(jié)束一個進(jìn)程。1、常用屬性 Enabled

20、:允許程序在運(yùn)行時使窗體和控件成為有效或無效 object.Enable =boolean Visible:允許在程序運(yùn)行時隱藏一個對象 object.Visible =boolean Style:設(shè)置按鈕外觀。0為標(biāo)準(zhǔn)Windows風(fēng)格 ,1為允許帶有自定義圖片 Picture:Style為1時,指定粘貼到按鈕上的圖形文件 Default:屬性為True時,指定為窗體缺省按鈕 Cancel:屬性為True時,指定為窗體缺省取消按鈕 7/23/202241例如:Option ExplicitPrivate Sub Form_Load() Text1.Text = Command1.Captio

21、n = saveEnd SubPrivate Sub Text1_Change() If Text1.Text = Then Command1.Enabled = False Else Command1.Enabled = True End IfEnd Sub7/23/2022422、常用方法 SetFocus方法 3、常用事件 Click(單擊) Click事件,以下情況可發(fā)生Clicl事件: (1) 在按鈕上單擊鼠標(biāo)。 (2) 焦點(diǎn)在按鈕上,按空格鍵或回車鍵。 (3) 在代碼中將按鈕Value屬性設(shè)置為True (4) 對于取消按鈕按Esc鍵 (5) 在Caption屬性中用&符號鏈接一訪

22、問鍵,在運(yùn)行時按Ali+訪問鍵。7/23/202243234 標(biāo)簽 標(biāo)簽現(xiàn)實(shí)不能編輯的信息。1 常用屬性 (1)AutoSize 當(dāng)值為true 時自動調(diào)節(jié)內(nèi)容大小以適應(yīng)其內(nèi)容。當(dāng)值為false時,不能改變大小。 (2)Alignment 屬性 標(biāo)簽內(nèi)文本的對齊方式,標(biāo)2. 7所示 (3) BordeStyle 屬性 標(biāo)簽的邊框,默認(rèn)值為0 ,無邊框。屬性設(shè)為1 右邊框。 7/23/202244(4)Backstyle 屬性 用來設(shè)置標(biāo)簽是否透明,0透明,1不透明,默認(rèn)值為1。 (5)wordwrap屬性 用來設(shè)置標(biāo)簽中的內(nèi)容是否能夠顯示多行。缺省為false ,設(shè)為true 可顯示多行。 2

23、 常用方法 常用方法有move方法實(shí)現(xiàn)控件的移動。 7/23/202245其他用法用標(biāo)簽來顯示時間Label1.Caption = Time在標(biāo)簽中同時顯示兩行以上的字符串Label1.Caption = Time & Chr(13) & Chr(10) & Date7/23/2022462.3.5文本框(Textbox) 1常用屬性 (1)Text屬性 (2)MultiLine屬性 MultiLine屬性為TrueMultiLine屬性為False7/23/2022472.3.5文本框(Textbox) 1常用屬性 (3)PassWordChar (a)(b)7/23/202248235 文

24、本框 文本框控件一般用于接收用戶輸入信息,用戶可以在文本框中編輯信息。1 常用屬性(1)text 屬性用來設(shè)置文本框中的內(nèi)容。(2)MultiLine 屬性MultiLine 屬性用來決定文本框是否可輸入多行文本。默認(rèn)為false ,設(shè)為true 可輸入多行。(3)PasswordChar 屬性用于密碼輸入,設(shè)置為* ,顯示為*。 7/23/202249(4)ScrollBars 屬性用于設(shè)置文本框是否有滾動條 如表2。8只有當(dāng)MultiLine 屬性為true 時滾動條才有效。(5)locked 屬性用于設(shè)置文本框的內(nèi)容是否可以編輯,默認(rèn)值為false 表示可編輯,值為true 表示鎖定。7

25、/23/2022502 常用方法常用的方法為Setfocus 設(shè)置焦點(diǎn),將光標(biāo)從其它位置移到文本框中。3 常用事件(1)Chang事件,改變文本框中內(nèi)容改變時發(fā)生的事件(2)KeyPress 事件,當(dāng)用戶按下并且釋放鍵盤上的一個鍵時,發(fā)生KeyPress 事件。該事件將返回一個KeyAscii 參數(shù)值.(3) LostFocus 和GotFocus 事件:表示文本框控件shiqu和得到焦點(diǎn)是所發(fā)生的事件。 7/23/20225124 事件驅(qū)動 241 事件驅(qū)動的程序設(shè)計(jì)事件驅(qū)動的應(yīng)用程序,程序的執(zhí)行發(fā)生了根本的變化,代碼不是按預(yù)定的路線執(zhí)行,而是在響應(yīng)不同的事件時執(zhí)行不同的代碼片斷。每個對象都

26、有一個相應(yīng)的事件集每個事件的發(fā)生都要執(zhí)行一段程序代碼,時間可以由用戶操作觸發(fā),也可以有操作系統(tǒng)或其他應(yīng)用程序的消息觸發(fā),甚至可以由應(yīng)用程序本身的消息觸發(fā)。 7/23/202252242 VB的對象如何識別事件 代碼部分與每個事件相對應(yīng),如果讓控件對象響應(yīng)事件,就把代碼寫入這個事件的事件過程中.2. 4. 3 事件驅(qū)動的工作過程 事件驅(qū)動的工作過程(1) 啟動應(yīng)用程序,裝載和顯示函數(shù)。(2) 窗體和窗體上的控件等待時間的發(fā)生。事件可以由用戶引發(fā),可由系統(tǒng)引發(fā),也可由代碼間接引發(fā)。(3) 當(dāng)某個事件發(fā)生后,執(zhí)行其對應(yīng)的事件過程代碼。(4) 重復(fù)執(zhí)行第2和第3步,直到結(jié)束。7/23/202253五、計(jì)時器控件的一般用法 如果想通過事件來控制某些操作或用于計(jì)時,就可以用計(jì)時器(Timer)控件來實(shí)現(xiàn)。計(jì)時器控件在設(shè)計(jì)時可見,而在運(yùn)行時則隱藏起來,但在后臺每隔一定的時間間隔就執(zhí)行一次Timer事件。(一)常用屬性 1、Interval屬性 返回或設(shè)置對Timer控件的計(jì)時事件各調(diào)用間的毫秒數(shù) 語法:object.Int

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論