快速原型VB開發(fā)教程_第1頁
快速原型VB開發(fā)教程_第2頁
快速原型VB開發(fā)教程_第3頁
快速原型VB開發(fā)教程_第4頁
快速原型VB開發(fā)教程_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第十二章菜單和控件VB的設(shè)計環(huán)境菜單設(shè)計菜單為程序界面有機組成部分,它在程序界面上給用戶提供一種方便的給命令分組的方法,用戶使用菜單將較為容易訪問這些命令。菜單的基本組成菜單標(biāo)題菜單項訪問魄快捷鍵菜單欄編記爭本剪切(T)Ctrl+X復(fù)制(QCtrl+C粘貼&Ctrl+V刪除QjDel時間/且期)搜索&:選項遜1.I編輯菜單分隔條12-1:菜單界面的組成如圖12-1所示:VB6.0的菜單為Window窗體的有機組成部分,菜單欄一般位于窗體的標(biāo)題欄的下一行,包含一個或多個菜單標(biāo)題。當(dāng)單擊一個菜單標(biāo)題(如“工程”),相應(yīng)菜單標(biāo)題的菜單就被拉下來。菜單包含菜單項目的列表,菜單項包括命令(如“添加窗體”

2、和“添加模塊”)、分隔條、和子菜單標(biāo)題(帶有向右箭頭的菜單項標(biāo)題)。在程序的窗體上,菜單項按功能分組組織以便于操作。例如,在圖12-1中與工程有關(guān)的命令“添加窗體”,“添加用戶控件”,和“添加模塊”等都列入“工程”的菜單中。菜單項目可以執(zhí)行三種不同的動作,有些菜單項直接執(zhí)行動作,如圖12-1中“工程”菜單中的“移除Forml”菜單項,將從工程中移除Forml窗體;一些后面帶有(.)的菜單項彈出相應(yīng)的對話框,要求用戶提供執(zhí)行動作所需信息。如“工程”菜單中選擇“部件”時,出現(xiàn)“部件”選擇的對話框;一些后面帶有向右箭頭的菜單項將下拉其子菜單,如“工程”菜單中“更多ActiveX設(shè)計器”下拉其子菜單。

3、菜單項中還包括訪問鍵和快捷鍵,它允許使用鍵盤上的組合鍵快速啟動菜單項功能。如在圖12-1中“工程(P)”,可使用訪問鍵“ALT+P”選中,選中“工程”菜單后,使用訪問鍵“A”啟動“添加文件”對話框,在未選中“工程”下拉菜單時,可用快捷鍵“CTRL+D”直接啟動“添加文件”對話框。下拉菜單中包括分隔符“”,主要是為了分隔被細分的菜單項。菜單編輯器上節(jié)介紹了菜單的組成,VB6.0中提供了功能強大的菜單設(shè)計工具一菜單編輯器,可使我們方便地設(shè)計各種菜單。如圖12-2所示:可以通過菜單、快捷按鈕、鼠標(biāo)右鍵以及快捷熱鍵“CTRL-E”來啟動菜單編輯器”。1、菜單編輯器菜單編輯器由標(biāo)題欄、輸入選擇區(qū)、功能按

4、鈕區(qū)以及菜單項列表框組成。標(biāo)題欄:顯示“菜單編輯器”,“X”按鈕用于關(guān)閉菜單編輯器。輸入選擇區(qū):用于輸入和修改用戶創(chuàng)建的菜單的名字、標(biāo)題等屬性,對菜單的屬性進行選擇或刪除。菜單控件的兩個最重要的屬性是:標(biāo)題這是出現(xiàn)在控件上的文本。名稱這是代碼中用來引用菜單控件的名字。功能按鈕區(qū):用于調(diào)整各菜單項的前后順序、包含層次等關(guān)系,建立、刪除或插入某個菜單項。菜單項列表框:將已經(jīng)建立完成的各項菜單項以列表的形式列出,并通過某些符號表明各項之間的層次關(guān)系。如圖12-2和圖12-3所示:菜單項列表框列出當(dāng)前窗體的所有菜單控件。當(dāng)在輸入選擇區(qū)中標(biāo)題文本框中鍵入一個菜單項時,該項出現(xiàn)在菜單控件列表框中。從列表框

5、中選取一個已存在的菜單控件可以編輯該控件的屬性。例如,圖12-3中示出記事本應(yīng)用程序中“文件”菜單的各種菜單項。菜單項在菜單項列表框中的位置決定了該控件是菜單標(biāo)題、菜單項、子菜單標(biāo)題,還是子菜單項:位于列表框中左側(cè)平齊的菜單項作為菜單標(biāo)題顯示在菜單欄中。列表框中被縮進的菜單項,當(dāng)單擊其前級菜單標(biāo)題時才會在該菜單上顯示。一個縮進過的菜單項,如果后面還緊跟著再次縮進的一些菜單項,它就成為一個子菜單的標(biāo)題。在子菜單標(biāo)題以下縮進的各個菜單項,就成為該子菜單的菜單項。一個以連字符(-)作為它的標(biāo)題屬性的菜單項,作為一個分隔符條出現(xiàn)。但是,若菜單項是一個菜單標(biāo)題、帶有子菜單項、被復(fù)選或無效、或者有一個快捷

6、鍵,那么它就不能作為分隔符條。2、建立菜單項用菜單編輯器可以創(chuàng)建、修改和刪除菜單和菜單欄。在菜單編輯器中創(chuàng)建菜單,請按照以下步驟執(zhí)行:選取該窗體啟動“菜單編輯器”在“標(biāo)題”文本框中,鍵入第一個菜單標(biāo)題,通過(&字符)設(shè)定菜單項的訪問鍵,在菜單中,這一字符會自動加上一條下劃線;菜單標(biāo)題文本顯示在菜單項列表框中。在“名稱”文本框中,鍵入將用來在代碼中引用該菜單控件的名字。單擊向左或向右箭頭按鈕,改變該菜單控件的縮進級。設(shè)置菜單控件的其他屬性,可以在菜單編輯器中做,也可以在“屬性”窗口中做。選取“下一個”就可再建一個菜單控件?;蛘?,單擊“插入”可在現(xiàn)有的控件之間增加一個菜單控件。也可以單擊向上與向下

7、的箭頭按鈕,在現(xiàn)有菜單控件之中移動控件。如果窗體所有的菜單控件都已創(chuàng)建,選取“確定”可關(guān)閉菜單編輯器。創(chuàng)建的菜單標(biāo)題將顯示在窗體上。拉其相應(yīng)的菜單項。在設(shè)計時,單擊一個菜單標(biāo)題可下3、分隔菜單項分隔符條作為菜單項間的一個水平行顯示在菜單上。在菜單項很多的菜單上,可以使用分隔符條將各項劃分成一些邏輯組。例如VB的“幫助”|幫曲1MicrosoftWord幫助址倉目錄和索引電)第?謹是什爼?(T)ShiftiFlMicrosoftontheWeb(jV)關(guān)于MicrosoftWord圖12-4:VB幫助分隔菜單,使用分隔符條將其菜單項分成三組,如圖12-4所示。要在菜單編輯器中創(chuàng)建分隔符條,請按照

8、以下步驟執(zhí)行:在已有的菜單中選取“插入”,在想要分隔開來的菜單項之間插入一個菜單控件。新菜單項縮進到與它要隔開的菜單項同級。在“標(biāo)題”文本框中鍵入一個連字符(-)。設(shè)置“名稱”屬性。選取“確定”,關(guān)閉菜單編輯器。注意:雖然分隔符條是當(dāng)作菜單控件來創(chuàng)建的,它們卻不能響應(yīng)Click事件,而且也不能被選取。4、設(shè)定訪問鍵和快捷鍵通過定義訪問鍵和快捷鍵可改進鍵盤對菜單命令的訪問。訪問鍵:訪問鍵允許按下ALT鍵并打入一個指定字符來打開一個菜單。一旦菜單打開,通過按下所賦值的字符(訪問鍵)可選取控件。在菜單控件的標(biāo)題中,一個指定的訪問鍵表現(xiàn)為一個帶下劃線的字母,如圖12-4所示。要在菜單編輯器中給菜單控件

9、賦值訪問鍵,請按照以下步驟執(zhí)行:選取要賦值訪問鍵的菜單項。在其“標(biāo)題”框中,在要作為訪問鍵字符的前面直接鍵入一個(&)字符。例如,如果圖12-2所示的“編輯”菜單中的“剪切”菜單項,其標(biāo)題輸入的是:剪切(&T)。注意:菜單中不能使用重復(fù)的訪問鍵?;蛘咴撴I將不起作用??旖萱I快捷鍵按下時會立刻運行一個菜單項,可以為頻繁使用的菜單項指定一個快捷鍵。快捷鍵的賦值包括功能鍵與控制鍵的組合,如圖12-5中的CTRL+Z鍵或CTRL+Y鍵。它們出現(xiàn)在菜單中相應(yīng)菜單項的右邊。對菜單項設(shè)置快捷鍵,按照以下步驟執(zhí)行:打開“菜單編輯器”。選取該菜單項。在“快捷鍵”組合框中選取功能鍵或者鍵的組合。要刪除快捷鍵賦值,應(yīng)

10、選取列表頂部的(none)。注意:快捷鍵將自動出現(xiàn)在菜單上;因此,不需要在菜單編輯器的“標(biāo)題”框中鍵入。5、菜單控件其他重要屬性菜單控件其他重要屬性如:“有效”、“復(fù)選”和“可見”選項在實際應(yīng)用中是相當(dāng)普遍的?!坝行А边x項用于決定菜單項是否有效,其中的控制命令能否執(zhí)行。該項選中,菜單項有效,否則菜單項無效,此時菜單項為灰色。此屬性也可在程序中通過菜單控件的Enable設(shè)置為False控制。如圖12-5所示的“”菜單項的查看電圍象a)顏色()扌工具箱(Tj-Ctrll-T顏料盒也卜Ctrl+L狀態(tài)欄“剪切”、“復(fù)制”?!皬?fù)選”選項用于決定菜單項是否有復(fù)選標(biāo)記。該項選中,則菜單項有復(fù)選標(biāo)記,否則沒

11、有復(fù)選標(biāo)記。這也可在程序中通過設(shè)置菜單控件的Checked屬性為True來實現(xiàn)。如圖12-6所縮放辺全圈Etfl+F12-6:菜單復(fù)選項示,“工具箱”菜單項為復(fù)選?!翱梢姟边x項決定菜單項是出現(xiàn)還是隱藏。若選中,則菜單是出現(xiàn)狀態(tài);否則為“隱藏”狀態(tài)??稍诖a中通過設(shè)置控件的Visible屬性來設(shè)置。注意:菜單項中所有的子菜單項應(yīng)至少有一個是可見的,不能設(shè)為全部“隱藏”。12.1.3編寫菜單命令當(dāng)用戶選取一個菜單項時,該菜單控件的Click事件出現(xiàn)。需要在該事件代碼中為每個菜單控件編寫一個Click事件過程。除分隔符條以外的所有菜單控件(以及無效的或不可見的菜單控件)都能識別Click事件。在菜單

12、事件過程中編寫的代碼與在控件任何其它事件過程中編寫的代碼完全相同。冠ex:iiTiple文件F|新逹(2)打開減保存&.另存為1圖1AT:例題菜単.例12.1:設(shè)計如圖12-7程序界面中的文件菜單,并編寫相應(yīng)的命令。按照上述介紹的步驟,首先設(shè)置一個標(biāo)題為example的窗體,然后啟動菜單編輯器進行“文件”菜單的設(shè)計。菜單設(shè)計如圖12-8所示,其中在菜單編輯器中輸入和選擇如表12-1所示:打開”和“退出”菜單項代碼設(shè)計分別如下:SubmnuFileOpen_Click()DimstrOpenFileNameAsStringfrmSDI.CMDialog1.Filename=frmSDI.CMDi

13、alog1.ShowOpenIfErr32755Then選擇Cancel.strOpenFileName=frmSDI.CMDialog1.Filename如果文件大于65K,則它不能被打開,取消此操作IfFileLen(strOpenFileName)65000ThenMsgBox文件太大不能被打開。ExitSubEndIfEndIfEndSubSubmnuFileClose_Click()UnloadMeEndSub表12-1:例題菜單設(shè)計的一些輸入和選擇標(biāo)題名稱有效可見文件(&F)MnuFileVV新建(&N)MnuFileNewVV打開(&0)MnuFileOpenVV存為(&S)Mn

14、uFileSaveVV另存為(&A)MnuFileSaveAsVVMnuFSepIVV退出(&X)MnuFileExitVV粘貼(1)一旦菜單標(biāo)題被選取,VisualBasic將自動地顯示出一個菜單;但是,沒有必要為一個菜單標(biāo)題的Click事件過程編寫代碼,除非想執(zhí)行其它操作,比如每次顯示菜單時使某些菜單項無效。注意:在設(shè)計時,當(dāng)關(guān)閉菜單編輯器時,所創(chuàng)建的菜單將顯示在窗體上。在窗體上選取一個菜單項將顯示那個菜單控件的Click事件過程。12.1.4彈出菜單全選(A)復(fù)制到(QJ,.粘貼自翻轉(zhuǎn)/旋轉(zhuǎn)拉伸f扭曲反色a)圖1A9:彈出菜單VB6.0中在菜單編輯器中設(shè)計的菜單是下拉式菜單。彈出式菜單是

15、顯示于窗體之上,獨立于菜單欄的浮動式菜單,如圖12-7所示。彈出式菜單位置取決于鼠標(biāo)右鍵按下時指針的位置,因此,彈出式菜單又稱為上下文菜單。在某些情況下,彈出式菜單會使系統(tǒng)功能的實現(xiàn)更加簡潔和高效,系統(tǒng)的使用更加得心應(yīng)手。Widnows應(yīng)用程序的彈出式菜單一般是當(dāng)用戶在程序的窗體上點按鼠標(biāo)鍵時出現(xiàn)的。彈出式菜單多用于實現(xiàn)系統(tǒng)的附加或增強功能。彈出式菜單的內(nèi)容,可以隨點按鼠標(biāo)鍵的位置不同而變化。由于彈出的菜單要覆蓋屏幕的一部分,所以應(yīng)盡量縮短菜單里的文字。在VB6.0中,彈出式菜單的實現(xiàn)要用到下拉式菜單設(shè)計的技術(shù)和PopupMenu方法。具體的做法是:在菜單編輯器中設(shè)計好相應(yīng)窗體的彈出式菜單。要

16、注意的是,要彈出的菜單必須至少有一個子菜單;因而這個菜單不能有快捷鍵,并且菜單控件的Checked屬性必須是False。再把彈出式菜單的Visible屬性改為False。可以將至少有一個菜單項的菜單,在運行時作為彈出式菜單予以顯示。使用PopupMenu方法可顯示彈出式菜單。object.PopupMenumenuname,flags,x,y,boldcommandObject:調(diào)用彈出式菜單的對象名。Menuname:設(shè)置為彈出式菜單的菜單名。Flags參數(shù):在PopupMenu方法中使用flags參數(shù)可以進一步定義彈出式菜單的位置與性能。見下表12-2表12-2:Flags參數(shù)表位置參數(shù)V

17、bPopupMenuLeftAlign(缺?。┯趚位置定義了該彈出式菜單左邊界VbPopupMenuCenterAlign彈出式菜單以x位置為中心VbPopupMenuRightAlign于X位置定義了該彈出式菜單右邊界性能參數(shù)VbPopupMenuLeftButton(缺?。┦髽?biāo)左鍵單擊觸發(fā)菜單項時VbPopupMenuRightButton鼠標(biāo)右鍵或者左鍵單擊觸發(fā)菜單項Boldcommand參數(shù):boldcommand參數(shù)指定在顯示的彈出式菜單中是否以粗體字體顯示菜單控件名稱。彈出式菜單中只能有一個菜單控件被加粗。例12.2:當(dāng)用戶用鼠標(biāo)右鍵單擊一個窗體時,以下的代碼將例12.1中的“文件

18、”菜單mnuFile設(shè)置為彈出式菜單。用MouseUp或者MouseDown事件來檢測何時單擊了鼠標(biāo)右鍵,標(biāo)準(zhǔn)用法是使用MouseUp事件:PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAs_Integer,XAsSingle,YAsSingle)IfButton=2Then檢查是否單擊了鼠標(biāo)右鍵。PopupMenumnuFile把文件菜單顯示為彈出式菜單。EndIfEndSub直到菜單中被選取一項或者取消這個菜單時,調(diào)用PopupMenu方法后面的代碼才會運行。注意:每次只能顯示一個彈出式菜單。在已顯示一個彈出式菜單的情況下,對后面的調(diào)用PopupM

19、enu方法將不予理睬。在一個菜單控件正活動的任何時刻,調(diào)用PopupMenu方法均不會被理睬。若選用多組參數(shù),可用Or操作符將它們連起來。例12.3:當(dāng)用戶單擊一個命令按鈕時,彈出邊框在窗體中心的彈出式“文件”菜單。該菜單觸發(fā)受到鼠標(biāo)右鍵或左鍵單擊的菜單項的Click事件。PrivateSubCommand1_Click()X變量和Y變量的尺寸。Dimx,y設(shè)置X變量和Y變量到窗體中心。x=ScaleWidth/2y=ScaleHeight/2顯示彈出式菜單。PopupMenumnuFile,vbPopupMenuCenterAlignOrvbPopupMenuRightButton,x,yE

20、ndSub常用控件在VB6.0中,控件是非常重要的部件,在窗體上使用控件實現(xiàn)應(yīng)用的各種功能,并能提高應(yīng)用程序的開發(fā)效率??丶且詧D標(biāo)的形式存放于集成開發(fā)環(huán)境中的工具箱中(如圖12-10所示),大致可分為三類:內(nèi)容控件、ActiveX控件以及可插入對象。但在應(yīng)用VB6.0開發(fā)應(yīng)用程序系統(tǒng)時,使用頻率最高的控件是VB6.0的內(nèi)部控件,在此節(jié)中我們將詳細介紹這些控件,如:按鈕、標(biāo)簽、文本框、選擇按鈕、列表框、下拉列表框、滾動條、時鐘以及命令對話框。12.2.1命令按鈕(CommandButton)命令按鈕在外表上看起來就是一個按鈕,用于開始、中斷或者結(jié)束一個進程,當(dāng)命令按鈕被選取時顯示按下的形狀。1

21、、命令按鈕屬性與字體有關(guān)的常用屬性FontName顯示文本所用的字體FontBold加粗顯示所用的字體Fontltalic傾斜顯示所用的字體Fontsize顯示所用的字體大小Fontunderline下劃顯示所用的字體與位置有關(guān)的常用屬性Height設(shè)置所選對象的高度Width設(shè)置所選對象的寬度Left對象左邊緣與容器左邊緣的距離Top對象頂端與容器頂端的距離與外觀有關(guān)的常用屬性Appearance對象在運行時是否以3D效果顯示Caption對像標(biāo)題欄中或圖像下面的文本BackColor對象中文本或圖像的背景色與行為有關(guān)的常用屬性Cancel允許用按ESC鍵取代單擊此按鈕的功能Default允

22、許用按ENTER鍵取代單擊此按鈕的功能Enabled用于設(shè)置命令按鈕的有效性Visible設(shè)置命令按鈕的可顯示性其它無歸類的常用屬性Index控件對象在控件數(shù)組中的標(biāo)識號MousePoint鼠標(biāo)移到對象特定部分時顯示的鼠標(biāo)指針類型Tag用來存儲程序中需要的額外數(shù)據(jù)說明:Cancel屬性:此屬性設(shè)置為True時,可用按ESC鍵代表單擊鼠標(biāo)按鈕;設(shè)置為False時,禁止任意鍵代表單擊此按鈕的功能。默認為False狀態(tài)。VB6.0中,一個窗體只允許有一個命令按鈕的Cancel屬性被設(shè)置為True的狀態(tài)。Default屬性:此屬性設(shè)置為True時,可以用按ENTER鍵代表單擊鼠標(biāo)按鈕;設(shè)置為False

23、時,禁止任意鍵代表單擊此按鈕的功能。默認為False狀態(tài)。在VB6.0中,一個窗體只允許有一個命令按鈕的Default屬性被設(shè)置為True的狀態(tài)。Enabled屬性:設(shè)置命令按鈕的有效性,在需要暫時使命令按鈕失去作用時使用,以防止發(fā)生誤操作。設(shè)置為True,則命令按鈕有效;設(shè)置為False,則命令按鈕無效。Visible屬性:設(shè)置命令按鈕的可顯示性,在需要暫時使命令按鈕消失時使用,以避免誤操作。設(shè)置為True,則按鈕顯示;設(shè)置為False,則命令按鈕消失。此屬性與Enabled屬性結(jié)合使用,控制命令按鈕的操作。字體有關(guān)屬性:設(shè)置與字體有關(guān)的屬性,除上述介紹的屬性外,還可通過Font對象屬性設(shè)置

24、,雙擊屬性窗口中的Font屬性,這時系統(tǒng)返回字體對象即字體對話框,在進行設(shè)置或選擇。若需在程序中設(shè)置則如下:Command1.Font.Bold=True例12.4:設(shè)計一個求和界面,當(dāng)輸入數(shù)據(jù)后,求和命令按鈕有效。2、命令按鈕事件命令按鈕事件命令按鈕能夠接受的常用事件為:Click,MouseDown,MouseUp,MouseMove,KeyPress,KeyUp和KeyDown等鼠標(biāo)鍵盤事件。注意:命令按鈕不能接受DblClick事件。常用命令按鈕事件Click單擊鼠標(biāo)左鍵時發(fā)生MouseDown當(dāng)按下鼠標(biāo)按鈕時發(fā)生MouseUp當(dāng)釋放鼠標(biāo)按鈕時發(fā)生MouseMove當(dāng)移動鼠標(biāo)時發(fā)生Ke

25、yPress當(dāng)用戶按下和松開一個鍵時發(fā)生KeyUp當(dāng)一個對象具有焦點時松開一個鍵時發(fā)生KeyDown當(dāng)一個對象具有焦點時按下一個鍵時發(fā)生3、命令按鈕方法命令按鈕的常用方法有:Drag、Move、Refresh、Setfocus、Zorder。常用命令按鈕方法Drag用于控件的開始、結(jié)束或取消拖動操作Move用以移動表單或控件Refresh強制全部重繪一個窗體或控件Setfocus將焦點移至指定的控件或窗體Zorder將表單或控件放直在z-順序的前端或后端例12.5:設(shè)計例12.4中的事件過程程序。PrivateSubCommand1_Click()Label2.Caption=CStr(CLn

26、g(Text1.Text)+CLng(Text2.Text)EndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then是否為ENTER鍵KeyAscii=0IfText1.TextAndText2.TextThenCommand1.Enabled=TrueEndIfSendKeysTabEndIfEndSubPrivateSubText2_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenKeyAscii

27、=0IfText1.TextAndText2.TextThenCommand1.Enabled=TrueEndIfSendKeysTabEndIfEndSub12-2-2標(biāo)簽及文本框標(biāo)簽用于顯示用戶不能直接改變的文本,常與無Caption屬性的控件配合使用,如文本框。文本框用于顯示用戶輸入的、或運行時在代碼中賦予控件的信息,有時也稱作編輯控件。1、標(biāo)簽屬性基本上某些常用屬性與在命令按鈕的常用屬性一樣,需要加以介紹的有如下幾個屬性:ForeColor設(shè)置控件的文字或圖像的前景顏色AutoSize決定控件是否自動改變大小以顯示其全部內(nèi)容Alignment決定控件中文本的對齊方式WordWrap擴展

28、標(biāo)簽大小的調(diào)整方式,與AutoSize配合2、標(biāo)簽事件與方法標(biāo)簽響應(yīng)鼠標(biāo)事件,支持鼠標(biāo)雙擊DblClick事件的響應(yīng),但不響應(yīng)鍵盤事件;支持的常用方法與命令按鈕大致。3、文本框?qū)傩晕谋究虺巳缟纤龅拇蟛糠殖S脤傩酝猓€有如下的常用屬性:Text、PassWordChar、Locked、MaxLength、MutiLine、ScrollBars,但文本框無Caption屬性,常與標(biāo)簽配合使用。Text設(shè)置或返回編輯域中的文本PassWordChar用于將任何輸入字符以輸入的特定字符代替Locked設(shè)定文本框是否可編輯MaxLength限定文本框中可輸入文本的長度MutiLine設(shè)置單彳丁或多彳

29、丁文本ScrollBars多行文本時,設(shè)置加入滾動條注意:PassWordChar屬性在MutiLine二False時使用,而ScrollBars在MutiLine=True時使用。4、文本框事件與方法文本框支持鼠標(biāo)、鍵盤事件以及常見的方法。例12.6:標(biāo)簽AutoSize、WordWrap屬性和文本框的MutiLine屬性在標(biāo)簽中顯示“白日依山盡黃河入海流欲窮千里目更上一層樓”,標(biāo)簽的長度僅能容納“白日依山盡黃河入海流”,本例如圖12-13所示,說明在AutoSize=True時,WordWrap=false標(biāo)簽長度水平擴展,=false時垂直擴展。同樣在文本框中,若文本框的屬性MutiLi

30、ne=false時,文本框僅在第一行顯示“白日依山盡黃河入海流”,在MutiLine=true時文本框啟動多行顯示。如圖12-14所示:例12.7:注冊界面,當(dāng)用戶進入應(yīng)用程序時,一般需要輸入用戶名和密碼進行注冊。此程序需用到文本框的PassWordChar屬性。在注冊界面中,輸入密碼的文本框Text2的PassWordChar屬性域輸入”,所以在其中輸入密碼時,代之顯示“*”。該程序簡易代碼如下:OptionExplicitPrivateSubCommand1_Click()IfText1.TextAndText2.TextThenIfText1.TexthhhOrText2.Text123

31、456ThenForm1.Caption=用戶名/密碼不對!請重輸Text1.SetFocusElseUnloadMeEndIfElseForm1.Caption=用戶名/密碼未輸全!請重輸IfText1.Text=ThenText1.SetFocusElseText2.SetFocusEndIfEndIfEndSubPrivateSubCommand2_Click()UnloadMeEndSub12-2-3選擇按鈕用于顯示選項,用戶只能在一系列選項中選擇一個。1、選擇按鈕屬性重要屬性如表所示,其他屬性同前所述。Caption按鈕標(biāo)題,在標(biāo)題中允許訪問快捷鍵:Alt+字母Alignment決定

32、按鈕的選擇體放置在標(biāo)題的左邊(0)或右邊(1)Value決定是否選中了該選項(True),系統(tǒng)缺省(False)2、選擇按鈕事件和方法常用的事件為Click事件,選擇選項按鈕即可激活其Click事件;其他事件和方法前于講述。選擇按鈕在具體的使用中需注意如下事項。、一般將多個選項按鈕放置在框架中組成選項組使用。用框架的標(biāo)題對選項組加以簡單說明。、選項按鈕的Value屬性的默認值為False,但在運行時,必須有一個選項按鈕被選中。一般設(shè)第一個選項按鈕為默認選中的選項按鈕。例12.8:選擇界面,利用選擇按鈕進行字體選擇,因為選擇按鈕為單選則將四項選擇分為兩組,選出兩種選擇作用于顯示字體。如圖12-1

33、6所示:默認值為“粗體”和“斜體”。程序代碼:PrivateSubForm_Load()設(shè)置默認為粗、斜體Option1.Value=TrueOption3.Value=TrueLabel1.Font.Bold=TrueLabel1.Font.Italic=TrueEndSubPrivateSubOption1_Click()置字體為粗體Label1.Font.Bold=TrueEndSubPrivateSubOption2_Click()置字體為細體Label1.Font.Bold=FalseEndSubPrivateSubOption3_Click()置字體為斜體Label1.Font.I

34、talic=TrueEndSubPrivateSubOption4_Click()置字體為正體Label1.Font.Italic=FalseEndSub12-2-4列表框和下拉列表框列表框顯示項目列表,從其中可以選擇一項或多項。若項目總數(shù)超過了可顯示的項目數(shù),自動添加滾動條。1、列表框?qū)傩粤斜砜虬驳某S脤傩?,如前所述;列表框幾個重要的屬性如表所示:Columns決定框中選項在一列中垂直滾動(默認:0),還是在多列中水平滾動(0)Multiselect決定允許多項選擇,為0(默認):單項選擇,為1:簡單多項選擇(單擊、空格選擇),為2:復(fù)雜多項選擇(SHIFT或CTRL+單擊選擇)Lis

35、t用于訪問或改變某選項值的數(shù)組,維數(shù):ListCountListcount列表框中選項的總個數(shù)Listlndex返回當(dāng)前選中選項在List數(shù)組的下標(biāo)值Text顯示當(dāng)前選中的選項的內(nèi)容Sorted設(shè)置選項是否按升序或大小序排列2、列表框事件和方法列表框能使用常用的鼠標(biāo)、鍵盤事件,并支持如下三種方法:AddItem向列表框添加選項,對象.AddItem內(nèi)容,索引值RemoveItem從列表框刪除選項,對象.RemoveItem索引值Clear清除全部選項,對象.Clear例12.9:列表框常用屬性和方法舉例,設(shè)計一個程序,輸入選項并添加到列表框中,顯示在列表框中所選中的選項,提供刪除指定選項功能。

36、4因諸輸入:Ji岳”列表框刪除選項退出I寶中的選項為:寶中的選項為:qqqqqq圖12-17:列表框厘性方法舉例程序界面如圖12-17所示,代碼如下:PrivateSubCommand1_Click()List1.AddItemText1.TextEndSubPrivateSubCommand2_Click()IfList1.ListIndex=-1ThenLabel1.Caption=沒有選中或無選項!ElseList1.RemoveItemList1.ListIndexEndIfEndSubPrivateSubList1_Click()Label1.Caption=List1.TextEn

37、dSubPrivateSubText1_Change()IfText1.Text=ThenCommand1.Enabled=FalseElseCommand1.Enabled=TrueEndIfEndSub12-2-5滾動條為不具備滾動條的控件提供滾動功能。一般有水平和垂直兩種滾動條,具體的結(jié)構(gòu)和使用方法相同。以下以水平滾動條為例講解滾動條。滾動條的結(jié)構(gòu)為:兩端各有一個滾動箭頭,兩個滾動箭頭中間是滾動條部分,在滾動條上有一個能夠移動的小方塊,叫做滾動框。1、滾動條屬性滾動條包含女口前所述的常用屬性,滾動條幾個重要的屬性如表所示:Value表示滾動框的當(dāng)前位置的值,改變值可改變滾動框的位置。默認

38、值為0滾動框總是位于最左端。Min滾動框移動到最小位置數(shù)值。系統(tǒng)設(shè)置此數(shù)為0滾動框在滾動條的最左端時,Value值為0。Max滾動框移動到最大位置數(shù)值。系統(tǒng)設(shè)此數(shù)為32767,滾動框在最右端時,Value值為32767。Value屬性的數(shù)值變化范圍為032767。SmallChange單擊滾動條兩端的箭頭時,滾動框移動的數(shù)值,默認值為1,可以修改。LargeChange單擊滾動條上的滾動框時,滾動框移動的數(shù)值。默認值為1,可以修改2、滾動條屬性和方法滾動條可使用常用的方法和鍵盤事件,但不能使用鼠標(biāo)事件,其他的滾動條的重要事件如表所示:Scroll在滾動框移動時被激活Change在滾動框移動后或

39、通過代碼改變Value值被激活例12.10:注意滾動條兩個重要的事件Scroll、Change的區(qū)別,此列中若發(fā)生Change事件則用藍色顯示Value值,若發(fā)生Scroll事件則用紅色顯示Value值。執(zhí)行程序:按住箭頭或滾動條,觸發(fā)Change事件,顯示藍字;拖動滾動框不釋放,則觸發(fā)Scroll事件,顯示紅字。程序清單:OptionExplicitPrivateSubForm_Load()HScroll1.Min=0HScroll1.Max=1000HScroll1.LargeChange=100HScroll1.SmallChange=1EndSubPrivateSubHScroll1_

40、Change()Label1.ForeColor=&HFF0000顯示藍色Label1.Caption=Format(HScroll1.Value)EndSubPrivateSubHScroll1_Scroll()顯示紅色Label1.ForeColor=&HFF&Label1.Caption=Format(HScroll1.Value)EndSub12-2-6計時器控件通過定時引發(fā)的Timer事件,Timer控件可以有規(guī)律地隔一段時間執(zhí)行一次代碼。注意:。因為計時器在一秒鐘內(nèi)最多產(chǎn)生18個事件,所以兩個事件之間的時間間隔精確度不超過1/18秒。1、計時器屬性計時器屬性較少,只有Name、En

41、abled、Index、Interval、Left、Tag和Top幾個屬性。其中Interval屬性:用于設(shè)置兩個計時器事件之間的時間間隔。以毫秒為單位,范圍是065535毫秒,系統(tǒng)初始值設(shè)置為0。2、計時器事件計時器可以響應(yīng)計時器事件,即Timer事件。12-2-7CommandDialog控件CommonDialog控件提供一組標(biāo)準(zhǔn)的操作對話框,打開和保存文件、設(shè)置打印選項、及選擇顏色和字體等操作。在程序中使用CommonDialog控件,將其添加到窗體并設(shè)置屬性。所顯示的對話框由控件的方法確定。下面介紹CommonDialog控件屬性和方法。1、CommonDialog屬性除了常用的屬性

42、外,CommonDialog自有的一些重要的屬性如表所示:Filter在對話框的類型列表框中所顯示的過濾器,object.Filter=descriptionlfilter1|description2filter2.,例如:Text(*.txt)|*.txtFilterIndex“打開”或“另存為”對話框中一個缺省的過濾器InitDir用于指定初始的目錄,如果此屬性未指定,則使用當(dāng)前目錄CancerError設(shè)置當(dāng)選取“取消”按鈕時是否出錯2、CommonDialog方法如表所示:方法所顯示的對話框ShowOpen顯示“打開”對話框ShowSave顯示“另存為”對話框ShowColor顯示“顏

43、色”對話框ShowFont顯示“字體”對話框ShowPrinter顯示“打印”或“打印選項”對話框ShowHelp調(diào)用Windows幫助引擎例12.11:設(shè)計使用CommonDialog控件提供的對話框的程序。由于CommonDialog控件不是VB6.0固有的控件,要使用常用對話框控件必須裝入控件。通過“工程”菜單找到“部件”菜單項打開部件對話框,找到MicrosoftCommonDialogControl6.0,進行復(fù)選返回。這時就可在工具箱看見CommonDialog控件的圖標(biāo)。程序界面上命令按鈕Command1-Command4分別對應(yīng)“打開”、“另存為”、“顏色”和“字體”按鈕;設(shè)置

44、標(biāo)簽label1用以顯示所選中的文件名、色彩和字體;CommonDialog控件的CancerError設(shè)為False。其他的在程序中設(shè)置。程序清單:PrivateSubCommand1_Click()CDlg.Filter=Text|*.txtCDlg.ShowOpenLabel1.Caption=CDlg.FileNameEndSubPrivateSubCommand2_Click()CDlg.Filter=Text|*.txtCDlg.ShowSaveLabel1.Caption=CDlg.FileNameEndSubPrivateSubCommand3_Click()CDlg.Font

45、Bold=Label1.FontBoldCDlg.FontItalic=Label1.FontItalicCDlg.FontName=Label1.FontNameCDlg.FontSize=Label1.FontSizeCDlg.Flags=cdlCFScreenFontsCDlg.ShowFontLabel1.FontBold=CDlg.FontBoldLabel1.FontItalic=CDlg.FontItalicLabel1.FontName=CDlg.FontNameLabel1.FontSize=CDlg.FontSizeEndSubPrivateSubCommand4_Clic

46、k()CDlg.Color=Label1.ForeColorCDlg.ShowColorLabel1.ForeColor=CDlg.ColorEndSubPrivateSubCommand5_Click()UnloadMeEndSub第十三章多文檔界面(MDI)13.1界面樣式Windows的應(yīng)用程序界面樣式主要有兩種:單文檔界面(SDI)和多文檔界面(MDI)。單文檔界面(SDI)的應(yīng)用只允許在一個實例中打開和處理單個文檔,如:Windows中的WordPad(記事本)應(yīng)用程序;而多文檔界面(MDI)應(yīng)用則允許在單個實例中打開多個文檔窗體,象表格程序Excel。13-2MDI窗體的創(chuàng)建多文檔

47、界面(MDI)應(yīng)用程序允許用戶同時顯示多個文檔,每個文檔顯示在自己的窗口中。文檔或子窗口被包含在父窗口中,父窗口為應(yīng)用程序中所有的子窗口提供工作空間。例如:MicrosoftExcel允許創(chuàng)建并顯示不同樣式的多文檔窗口。每個子窗口都被限制在Excel父窗口的區(qū)域之內(nèi)。當(dāng)最小化Excel時,所有的文檔窗口也被最小化,只有父窗口的圖標(biāo)顯示在任務(wù)欄中。創(chuàng)建MDI應(yīng)用程序步驟:工程1CT程1)Forml(Form1)Form2(Form2)圖13-1:MD:工程I程-工程iIB1=1|QMDIForml(MEIFormO子窗體就是其MDIChild屬性設(shè)置為True的普通窗體。一個應(yīng)用程序可以包含許多

48、相似或者不同樣式的MDI子窗體。1、創(chuàng)建MDI窗體,從“工程”菜單中選取“添加MDI窗體”。見圖13-1中MDIForm1窗體就是MDI窗體。注意:一個應(yīng)用程序只能有一個MDI窗體。2、創(chuàng)建應(yīng)用程序的子窗體,創(chuàng)建一個MDI子窗體就是將創(chuàng)建的普通新窗體(或者打開一個存在的窗體)的MDIChild屬性設(shè)為True。見圖13-1中窗體Forml和Form2就是MDI之窗體。這兩個窗體的屬性:MDIChild設(shè)置True。例13.1:MDI簡易文本編輯器。提供文本文檔的新建等功能,加入“窗口”菜單,包括窗體排列等菜單項,提供文檔的編輯彈出菜單等。設(shè)計步驟:1、構(gòu)造窗體:在VB中,按步驟創(chuàng)建一個MDI窗

49、體(MDIForm1)和一個標(biāo)準(zhǔn)窗體(Forml)。創(chuàng)建“文件”菜單。2、本程序中,所有的MDI子窗體都為簡易編輯器;因此將Forml窗體創(chuàng)建一個文本框(Textl),創(chuàng)建“文件”和“窗口”菜單。并將窗體的MDIChild屬性置True。3、MDI子窗體的編程:新建子窗體時,創(chuàng)建MDI子窗體的實例,關(guān)閉應(yīng)用或MDI子窗體時,檢測內(nèi)容是否變動以便存入。圖13-2MDI簡易文本編輯器程序清單:1、MDI簡易文本編輯器應(yīng)用程序示例主窗體應(yīng)用程序首先啟動MDI主窗體的Load事件;在這事件過程中,設(shè)定工作目錄,啟動和初始化MDI子窗體。代碼中使用MDI子窗體對象的動態(tài)數(shù)組來加載MDI子窗體,見模塊定義

50、:Document()AsNewfrmNotePad;初始化時設(shè)置MDI子窗體的狀態(tài),F(xiàn)State(1).Dirty=False,此數(shù)組在模塊定義如下:TypeFormStateDeletedAsIntegerDirtyAsIntegerEndTypePublicFState()AsFormState這數(shù)組變量中Deleted標(biāo)記編輯器中文本是否被刪除,Dirty標(biāo)記子窗體的文本編輯器文本是否被改動。PrivateSubMDIForm_Load()ShowChDirApp.PathReDimDocument(1)ReDimFState(1)Document(1).Tag=1FState(1).Dirty=FalseDocument(1).Caption=無標(biāo)題:1Document(1).ShowEndSub2、“文件”菜單“新建”菜單項的編程菜單中“新建”Click事件過程將建立一個新的MDI子窗體,與Load過程一樣,進行初始化和顯示。與Load過程不一樣的是,在Load過程中啟動Document()數(shù)組的首元素,在應(yīng)用系統(tǒng)應(yīng)用時,伴隨MDI子窗體的創(chuàng)建和刪除,Document()數(shù)組中可能存在空元素,因此,在新建的Click過程中要首先檢測有無空元素,產(chǎn)生索引號,這由模塊中函數(shù)FindFreeIndex()完成,然

溫馨提示

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

評論

0/150

提交評論