Visual Basic程序設(shè)計(jì)(第三版)課件第2章_第1頁(yè)
Visual Basic程序設(shè)計(jì)(第三版)課件第2章_第2頁(yè)
Visual Basic程序設(shè)計(jì)(第三版)課件第2章_第3頁(yè)
Visual Basic程序設(shè)計(jì)(第三版)課件第2章_第4頁(yè)
Visual Basic程序設(shè)計(jì)(第三版)課件第2章_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

第二章

VB程序設(shè)計(jì)初步本章主要內(nèi)容1面向?qū)ο缶幊痰幕靖拍?窗體3標(biāo)簽、文本框、按鈕4程序調(diào)試目的和要求:掌握VB編程的關(guān)鍵性概念,掌握編程的一般步驟掌握窗體、標(biāo)簽、文本框和命令按鈕的使用掌握程序調(diào)試的基本概念和方法2.1面向?qū)ο缶幊痰幕靖拍睿▽?duì)象、對(duì)象的屬性、事件和方法)2.2窗體窗體是建立VisualBasic應(yīng)用程序用戶界面的平臺(tái)。程序運(yùn)行前,即設(shè)計(jì)階段,稱為窗體;程序運(yùn)行后也可稱窗口。既是VB中最常見的對(duì)象,又是其它控件的容器一、窗體的屬性窗體的屬性決定了窗體的外觀和內(nèi)在結(jié)構(gòu)特征,其中一些屬性是其他控件也具有的。常用窗體屬p19表2-1結(jié)合實(shí)例,初識(shí)窗體的設(shè)計(jì)步驟:

實(shí)例:編寫程序?qū)⒋绑w的大小設(shè)置為屏幕的一半并使窗體居中顯示,裝入圖片,單擊后圖片消失,每單擊一次窗體顏色變換一次。PrivateSubForm_load()Form1.Width=Screen.Width*0.5Form1.Height=Screen.Height*0.5Form1.Left=(Screen.Width-Width)/2Form1.Top=(Screen.Height-Height)/2Form1.Picture=LoadPicture("e:\sunset.jpg")EndSubPrivateSubForm_click()Form1.Picture=LoadPicture("")Form1.BackColor=QBColor(Rnd*15)EndSub二、窗體的事件

VB采用了事件驅(qū)動(dòng)的編程機(jī)制。當(dāng)沒有事件發(fā)生時(shí),程序處于等待狀態(tài),只有當(dāng)事件發(fā)生時(shí)程序才會(huì)運(yùn)行。根據(jù)事件的來源,VB中的事件主要分為鼠標(biāo)事件、鍵盤事件和系統(tǒng)事件3種。最常用的鼠標(biāo)事件:click(單擊)、dblclic(雙擊)最常用的系統(tǒng)事件:initialize,load,unload,activate,deactivate事件。注:1.initialize,load,activate三個(gè)觸發(fā)事件的執(zhí)行順序?yàn)椋篿nitialize,load,activate2.有些操作可在三事件中都可執(zhí)行(如修改窗體的標(biāo)題),有些則需特定的事件中完成,如print方法,在初始化中不可執(zhí)行,load事件中執(zhí)行但不顯示結(jié)果(除非將Autoredrawy設(shè)為真值),在activate中可執(zhí)行。(1)Load事件(當(dāng)一個(gè)窗體被裝載時(shí)觸發(fā))PrivateSubForm_Load()List1.AddItem“安理大"List2.AddItem“計(jì)算機(jī)學(xué)院"EndSub‘在裝入窗體后自動(dòng)執(zhí)行,并在窗體上的列表框中對(duì)應(yīng)填入相應(yīng)的文字(2)Unload事件(運(yùn)行程序后如果關(guān)閉窗體窗口,就會(huì)觸發(fā)unload事件)。窗體1PrivateSubForm_unLoad(cancelAsInteger)form2.showEndSub窗體2PrivateSubForm_Load()Form2.caption=“這是第二個(gè)窗體”EndSub

2.setfocus方法焦點(diǎn)設(shè)置:當(dāng)某指定的按鈕一旦使用了此方法,用戶的輸入(如Enter鍵)就自動(dòng)引導(dǎo)到成為焦點(diǎn)的按鈕上。例如要想讓第二個(gè)命令按鈕在程序一運(yùn)行時(shí)插入點(diǎn)就放在此命令按鈕上,就可在窗體的activate事件中添加:

command2.setfocus。兩點(diǎn)注意:

注:*該事件不可出現(xiàn)在窗體的load事件中。

*使用此方法前被指定的按鈕的“visible”和“enable”屬性必須設(shè)為“true”。(3)Activate和deactivate事件

當(dāng)一個(gè)窗體變?yōu)榛顒?dòng)窗體時(shí)就會(huì)觸發(fā)activate事件。而當(dāng)另一個(gè)窗或應(yīng)用程序被激活,原窗體不再是活動(dòng)窗體時(shí),就會(huì)觸發(fā)deactivate事件。例:例:窗體1PrivateSubCommand1_Click()Form2.ShowEndSubPrivateSubform_deactivate()Print"aaaaa"EndSub窗體2PrivateSubForm_Activate()Text1.Text="AAAAAA"EndSub三、窗體常用方法

窗體方法實(shí)際上是VB提供的特殊過程。在窗體操作中可以使用以下方法:1.Cls方法格式:[對(duì)象名.]cls

此方法用來清除由print方法在窗體或圖片框中顯示的文本或用作圖方法在窗體或圖片框中顯示的圖形。例如,在窗體上添加一個(gè)圖片框picture1時(shí),可編寫以下窗體過程:PrivateSubForm_click()Print"清除方法練習(xí)"Circle(3000,1000),700Picture1.Print"畫圓"Picture1.Circle(500,500),180EndSubPrivateSubCommand1_Click()Form1.ClsPicture1.ClsEndSub用cls方法清除窗體1和圖片框中的文字和圖形在窗體和圖片框中寫入文字和作圖2.Move方法格式:[對(duì)象名.]moveleft[,top[,width[,height]]]

使用此方法可以使對(duì)象(不包括時(shí)鐘)移動(dòng),同時(shí)也可以改變被移動(dòng)對(duì)象的尺寸。例如:

PrivateSubForm_click()Form1.MoveLeft-120,Top+40,Width-150,Height-130EndSub3.show方法

格式:[對(duì)象名.]show[style]

此方法用于顯示指定的窗體,如果指定的窗體未裝載,VB將自動(dòng)裝入該窗體。若未指名對(duì)象,則默認(rèn)當(dāng)前窗體。其中style=0為無(wú)模式,style=1為有模式。有模式:show后面的程序代碼暫停執(zhí)行,直到該窗體被隱藏或卸載時(shí)才執(zhí)行。無(wú)模式:show后面的程序代碼立即被執(zhí)行。Show方法的有模式和無(wú)模式程序?qū)嵗齈rivateSubform_click()Form2.Show0Font.size=20ForeColor=vbRedForm1.Print"aaaaa"EndSub4.hide方法格式:[對(duì)象名.]hide用以隱藏指定的窗體但不能將其卸載。例:PrivateSubForm_click()HideMsgBox"按下確定重新顯示窗體"ShowForeColor=vbRedFontSize=40Print:PrintPrint“安理大歡迎您!"EndSub5.添加窗體與設(shè)置啟動(dòng)窗體(1)添加窗體的步驟:

從“工程”菜單中選“添加窗體”工程資源管理器窗口完成(2)設(shè)置啟動(dòng)窗體啟動(dòng)窗體設(shè)置的步驟:可按下述步驟對(duì)工程屬性進(jìn)行設(shè)置:從“工程”菜單中選擇“工程屬性”命令,打開“工程屬性“對(duì)話框選擇該對(duì)話框中的“通用”選項(xiàng)卡。在“啟動(dòng)對(duì)象”下拉列表框中,選取作為新啟動(dòng)窗體的form2單擊“確定”。2.3命令按鈕、標(biāo)簽、文本框

一、標(biāo)簽框標(biāo)簽(label)控件是用來顯示文本的控件,該控件和文本框都是用來對(duì)文本進(jìn)行處理的控件,但標(biāo)簽控件沒有文本輸入的功能。1.基本屬性標(biāo)簽控件的Name、height、width、top、left、enable、visible、font、forecolor、backcolor等屬性與窗體相同。2.常用屬性(P24表)(1)caption屬性

用來改變標(biāo)簽(label)控件中顯示的文本。允許文本的長(zhǎng)度最多1024個(gè)字符。當(dāng)文本字符超過標(biāo)簽寬度時(shí)自動(dòng)換行(中文有效,西文無(wú)效),超過高度時(shí)超出部分被自動(dòng)截去。(2)alignment屬性

用于設(shè)置caption屬性中的文本的對(duì)齊方式,共有3種方式:

0----leftjustify(左對(duì)齊)系統(tǒng)默認(rèn)

1----rightjustify(右對(duì)齊)2----centerjustify(居中對(duì)齊)

(3)Backstyle屬性

用于確定標(biāo)簽的背景是否透明。

0----transparenty(透明);標(biāo)簽后面的背景和圖形可見。

1----opaque(不透明);標(biāo)簽后面的背景和圖形不可見。系統(tǒng)默認(rèn)(4)Autosiz和wordwrap屬性Autosiz屬性決定標(biāo)簽水平寬度是否隨標(biāo)題內(nèi)容的多少自動(dòng)變化。為true時(shí)標(biāo)簽水平寬度隨標(biāo)題內(nèi)容多少自動(dòng)水平方向調(diào)整寬度。為false時(shí),標(biāo)簽水平寬度不隨標(biāo)題內(nèi)容多少自動(dòng)水平方向調(diào)整寬度,超出內(nèi)容不顯示。

Wordwrap屬性用來設(shè)置標(biāo)簽內(nèi)容水平超寬時(shí)是否換行,當(dāng)wordwrap為true、autosiz也為true時(shí),換行,即高度自動(dòng)調(diào)整,為false時(shí),文本不換行。若autosiz為false時(shí)無(wú)論wordwrap為何值均不換行。(5)Bordstyle屬性

用于設(shè)置標(biāo)簽邊框的樣式

0----none(無(wú)邊框)1----fixedsingle(有邊框)二、文本框(p25表)

文本框是一種通用控件用于顯示用戶輸入的信息,也可作為信息輸出的對(duì)象。1基本屬性文本框的Name、height、width、top、left、enable、visible、font、forecolor\backcolor等屬性與標(biāo)簽相同。2.常用屬性

(1)text屬性

其值就是文本框的內(nèi)容。允許文本的長(zhǎng)度最多2048個(gè)字符。文本框無(wú)caption屬性與其它常用控件不同??赏ㄟ^程序代碼、屬性窗口和程序運(yùn)行時(shí)三種方式向文本框輸入信息。

(2)multiline屬性文本框默認(rèn)為單行輸入,可將此屬性設(shè)為true來使文本框接受多行信息,文本長(zhǎng)度可達(dá)32kB,字符數(shù)長(zhǎng)度超過文本框?qū)挾葧r(shí)自動(dòng)換行。(3)Scrobars屬性為瀏覽文本提供水平和垂直滾動(dòng)條。

0----無(wú)滾動(dòng)條

1-----horizontal只有水平滾動(dòng)條

2-----vertical只有垂直滾動(dòng)條

3-----both具有水平和垂直滾兩個(gè)滾動(dòng)條。注:此屬性的前提是屬性multiline為true。(4)maxlength屬性

設(shè)置文本框中允許的字符數(shù),其值范圍為:0~2048個(gè)字符,默認(rèn)為0,此時(shí),只要不超出2048個(gè)字符均可。(5)passwordchar屬性為文本框輸入的字符設(shè)置掩碼,一般用于密碼的輸入。屬性值只能是一個(gè)字符。此屬性只影響文本框內(nèi)容的顯示,不影響內(nèi)容。若將passwordchar屬性值設(shè)為“*”,在生效期間,無(wú)論輸入什么字符,在文本框內(nèi)只顯示“*”符號(hào)。例

PrivateSubCommand1_Click()a=Text1.TextIfa="123"ThenText2.Text="祝你注冊(cè)成功"ElseText2.Text="你輸入的密碼不正確!"EndIfEndSub(6)selstart屬性

確定在文本框內(nèi)所選擇文本內(nèi)容的起始位置,若未選擇文本則用于返回或設(shè)置文本插入點(diǎn)的位置。

(7)sellength屬性

用于設(shè)置或返回文本框中選定的字符長(zhǎng)度。(8)seltext屬性

用于設(shè)置或返回當(dāng)前選定的文本。(9)loced屬性設(shè)置文本框內(nèi)的內(nèi)容是否可以進(jìn)行編輯,為true,只顯示不可編輯,否則可編輯。3.常用事件

(1)change事件

當(dāng)用戶在文本框中輸入新的內(nèi)容后,則觸發(fā)該事件。常用于對(duì)輸入字符的有效性的實(shí)時(shí)檢測(cè)。

例:PrivateSubText1_Change()DimaAsIntegern=Val(Len(Text1))Print"現(xiàn)在已輸入了"&Str(n)&"個(gè)字符了"EndSub(2)keypress事件舉例

在向文本框輸入信息時(shí),每按下一個(gè)ASCII字符鍵,就觸發(fā)一次keypress事件,同時(shí)返回按下的所輸入的ASCII碼,可通過此事件判斷用戶按下的是哪個(gè)鍵。PrivateSubText1_KeyPress(nAsInteger)Form1.Height=Screen.HeightForm1.Width=Screen.WidthForm1.FontSize=30Text1.FontSize=30Print"你輸入的是"&Chr(n)&"字符"EndSub(3)lostfocus事件

當(dāng)焦點(diǎn)從文本框中離開時(shí),觸發(fā)該事件,通??捎迷撌录頇z查文本框中用戶輸入的內(nèi)容或指定文本框失去焦點(diǎn)后所做的事情。4.常用方法setfocus方法:這是文本框最常用的方法,可使文本框獲得焦點(diǎn),例如要想讓第一個(gè)文本框在程序一運(yùn)行時(shí)插入點(diǎn)就放在此文本框上,就可在窗體的activate事件中添加:text1.setfocuse。

2點(diǎn)注意

PrivateSubform_activate()Text3.SetFocusEndSubPrivateSubtext1_lostfocus()Text2.Text=Text1.TextEndSub

注:*該方法不可出現(xiàn)在窗體的load事件中。

*文本框中的內(nèi)容默認(rèn)為字符型,若要參與數(shù)學(xué)運(yùn)算,則要用val()函數(shù)進(jìn)行轉(zhuǎn)換。例(p292-4):編寫程序,由用戶從鍵盤上輸入兩個(gè)數(shù),然后求這兩個(gè)數(shù)的和并將結(jié)果顯示出來。源程序代碼及運(yùn)行結(jié)果文本框作輸入文本框作輸出PrivateSubCommand1_Click()Text3.Text=Val(Text1.Text)+Val(Text2.Text)EndSub例(p302-5):編寫程序,單擊“復(fù)制”按鈕可將上面文本框中選定的內(nèi)容復(fù)制到下面的文本框中;單擊“移動(dòng)”按鈕,可將上面文本框中選定的內(nèi)容移到下面的文本框中;單擊“清空”按鈕可將兩個(gè)文本中的內(nèi)容清除。運(yùn)行結(jié)果:文本框增設(shè)multiline屬性源程序如下PrivateSubCommand1_Click()Text2.Text=Text2.Text+Text1.SelTextEndSubPrivateSubCommand2_Click()Text2.Text=Text2.Text+Text1.SelTextText1.SelText=""EndSubPrivateSubCommand3_Click()Text1.Text=""Text2.Text=""EndSub注意文本框seltext屬性的應(yīng)用三、命令按鈕命令按鈕主要用于接受用戶的操作信息、激發(fā)某些事件、實(shí)現(xiàn)下一個(gè)啟動(dòng)、中斷和結(jié)束等操作。命令按鈕接收用戶信息的三種方式:鼠標(biāo)單擊、按Tab鍵、快捷鍵(Alt+有下劃線的字母)注意:命令按鈕不支持雙擊(dblclick事件)(一)幾種基本和常用屬性:1.基本屬性:命令按鈕的Name、height、width、top、left、enable、visible、font等屬性均與窗體的使用方法相同。2.常用屬性:(1)caption屬性

該屬性用于設(shè)置命令按鈕上顯示的文本。屬性可在屬性窗口中設(shè)置、也可在和序運(yùn)行中設(shè)置。

caption屬性最多包含255個(gè)字符,如果超過255則從末尾將多余字符截去。若標(biāo)題字符超出命令按鈕的寬度,則自動(dòng)換行??赏ㄟ^caption屬性創(chuàng)建命令按鈕訪問鍵快捷方式。例:將命令按鈕的caption屬性設(shè)為“運(yùn)行(&R)”后,此命令按鈕就可用Alt+R就可激活該命令按鈕。(2)default和cancel屬性

指定某一個(gè)默認(rèn)命令按鈕時(shí)需將其default屬性設(shè)為true,同時(shí)將tabindex屬性按序設(shè)0、1值。此時(shí),只要按回車鍵就相當(dāng)于單擊了此鍵。若將其cancel屬性設(shè)為true,此時(shí),只要按ESC鍵就相當(dāng)于單擊了此鍵。一個(gè)窗體只能有一個(gè)命令按鈕的default屬性設(shè)為true,也只能有一個(gè)命令按鈕的cancel屬性設(shè)為true。PrivateSubcommand1_click()Print"aaaa"EndSubPrivateSubCommand2_Click()Print"bbbb"EndSub(3)value屬性

通過程序代碼將某一命令按鈕的value屬性設(shè)為true時(shí),在程序運(yùn)行中就相當(dāng)于自動(dòng)觸發(fā)了這個(gè)按鈕的單擊事件。此屬性不能在屬性窗口中設(shè)置。(4)style屬性此屬性在按鈕上顯示文字或圖形。style=0(standard)只顯示文字style=1(graphical)既可顯示文字也可顯示圖形(picture屬性中需添加要顯示的圖形文件)。PrivateSubcommand1_click()Command2.Value=TruePrint"aaaa"EndSubPrivateSubCommand2_Click()Print"bbbb"EndSub(5)picture屬性

使按鈕可顯示圖片文件,此屬性只有當(dāng)style為1時(shí)有效。(6)tooltipText屬性

提示文本屬性,當(dāng)某命令按鈕設(shè)置了tooltip屬性后,只要將光標(biāo)放在此命令按鈕上,立刻顯示出該按鈕的文本提示。PrivateSubCommand1_Click()Print"abcdefghijk"Shell

"Explorer

"EndSubPrivateSubCommand2_Click()EndEndSub(7)若將按扭連接到網(wǎng)絡(luò)上去,可在代碼中使用:Shell

"Explorer

"

(二)常用事件

命令按鈕的最常用事件click()注:不支持Dblclick(雙擊)事件(三)常用方法

1.move方法

與窗體中的move方法相同。VB系統(tǒng)中的所有可視控件都有此方法。

PrivateSubCommand1_Click()Command1.Movecommand1.Left-20,command1.Top+20EndSub

例:

參照下圖的運(yùn)行界面圖設(shè)計(jì)一段程序,單擊左移按鈕窗體向左移一次,單擊右移按鈕窗體向右移一次,每次移動(dòng)的幅度為60twip。(打印機(jī)的一個(gè)點(diǎn),即我們說的“磅”,相當(dāng)于20個(gè)Twips,一英吋相當(dāng)于1440個(gè)Twips,一公分則相當(dāng)于567Twips)源程序代碼:PrivateSubCommand1_Click()Form1.Left=Form1.Left-120EndSubPrivateSubCommand2_Click()Form1.Left=Form1.Left+120EndSub四、開發(fā)VB應(yīng)用程序的基本步驟實(shí)例1、設(shè)計(jì)用戶界面2、屬性設(shè)置3、編寫事件過程代碼4、運(yùn)行調(diào)試工程5、保存工程6、工程的編譯注:保存工程的注意事項(xiàng):一個(gè)工程所包含的多個(gè)不同類型文件如:窗體文件(.frm)、工程文件(.vbp)、模塊文件(.bas)等需要分別保存;一般不用系統(tǒng)默認(rèn)的文件名,用自己輸入的文件名來保存;建議同一工程下的不同類型的文件存放在同一文件夾下。開發(fā)步驟舉例:開發(fā)步驟舉例:[例p262-3]設(shè)計(jì)一個(gè)程序,界面由3個(gè)按鈕(“顯示”、“清除”、“退出”)和1個(gè)文本框組成,當(dāng)用戶單擊其中一個(gè)命令按鈕時(shí),在文本框中顯示文本內(nèi)容;單擊另一個(gè)按鈕時(shí),清除文本框中的內(nèi)容單擊第三個(gè)命令按鈕時(shí)結(jié)束程序的運(yùn)行。1.界面設(shè)置1.界面設(shè)置

先進(jìn)入VB編程環(huán)境,建立一個(gè)新的工程。將題目中要求的一個(gè)文本框和三個(gè)命令按鈕添加到form1窗體中去。添加完成后的窗體界面如下圖示:(1)控件添加:1.界面設(shè)置

(1)控件添加:(2)控件的設(shè)置(3)控件屬性的設(shè)置2.編寫事件過程代碼3.工程的保存4.運(yùn)行調(diào)試工程(1)控件添加:方法1:?jiǎn)螕艄ぞ呦渲袌D標(biāo),在窗體上拖動(dòng)鼠標(biāo)。方法2:雙擊工具箱中控件圖標(biāo),在窗體中央自動(dòng)添加控件(所畫控件的大小和位置是固定的)。方法3:按下Ctrl鍵,單擊工具箱中控件圖標(biāo);松開Ctrl鍵,在窗體上可重復(fù)拖動(dòng)鼠標(biāo),添加多個(gè)控件。添加完成后單擊工具箱中指針圖標(biāo)(或其他圖標(biāo))。(2)控件的設(shè)置(2)控件的設(shè)置①控件的縮放和移動(dòng)②控件的復(fù)制和刪除復(fù)制時(shí)注意控件數(shù)組③選擇控件(3)控件屬性的設(shè)置①.直接在屬性框中鍵入新屬性值。②通過屬性框中下拉列表選擇所需要的屬性值。有些屬性如邊框類型、控件框、控件外觀、線條樣式等,取值有多種選擇。③.

利用對(duì)話框設(shè)置屬性值。有些屬性如Picture(圖片)、Icon(圖標(biāo))、Font(字體)屬性,設(shè)置框右端顯示省略號(hào),即三個(gè)小點(diǎn)(…),單擊三個(gè)小點(diǎn),顯示一對(duì)話框。④在對(duì)象過程代碼設(shè)計(jì)中,利用相關(guān)賦值語(yǔ)句來給對(duì)象的屬性賦值。按下表設(shè)置各控件屬性(見P19表1-4)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論