PLC編程培訓(xùn)VisualBasic基本控件及簡(jiǎn)單程序設(shè)計(jì)_第1頁(yè)
PLC編程培訓(xùn)VisualBasic基本控件及簡(jiǎn)單程序設(shè)計(jì)_第2頁(yè)
PLC編程培訓(xùn)VisualBasic基本控件及簡(jiǎn)單程序設(shè)計(jì)_第3頁(yè)
PLC編程培訓(xùn)VisualBasic基本控件及簡(jiǎn)單程序設(shè)計(jì)_第4頁(yè)
PLC編程培訓(xùn)VisualBasic基本控件及簡(jiǎn)單程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2.1 程序設(shè)計(jì)方法概述程序設(shè)計(jì)方法的發(fā)展可以分為3個(gè)階段人們想用計(jì)算機(jī)解決一個(gè)問(wèn)題,必須事先設(shè)計(jì)好計(jì)算機(jī)處理信息的步驟,把這些步驟用計(jì)算機(jī)能夠識(shí)別的指令編寫出來(lái)并送入計(jì)算機(jī)執(zhí)行,計(jì)算機(jī)才能按照人的意圖完成指定的工作。我們把計(jì)算機(jī)能執(zhí)行的指令序列稱為程序,而編寫程序的過(guò)程稱為程序設(shè)計(jì)。一、初期的程序設(shè)計(jì)以少占用內(nèi)存、運(yùn)行效率高為目標(biāo)。(計(jì)算機(jī)能直接識(shí)別的機(jī)器指令由0和1組成的二進(jìn)制編碼的集合)程序=算法+機(jī)器語(yǔ)言的程序設(shè)計(jì)方法二、結(jié)構(gòu)化程序設(shè)計(jì)以程序的可讀性、可維護(hù)性為目標(biāo)。程序=算法+數(shù)據(jù)結(jié)構(gòu)+計(jì)算機(jī)語(yǔ)言+面向過(guò)程的程序設(shè)計(jì)方法三、面向?qū)ο蟮某绦蛟O(shè)計(jì)(一)以降低程序的復(fù)雜性、提高軟件的開法效

2、率和改善工作界面為目標(biāo)。程序=對(duì)象+消息+面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(二)面向?qū)ο蟮某绦蛟O(shè)計(jì)具有如下的優(yōu)點(diǎn):1、符合人們習(xí)慣的思維方法,便于分解大型的復(fù)雜多變的問(wèn)題。由于對(duì)象對(duì)應(yīng)于現(xiàn)實(shí)世界中的實(shí)體,因而可以很自然地按照現(xiàn)實(shí)世界中處理實(shí)體的方法來(lái)處理對(duì)象,軟件開發(fā)者可以很方便地與問(wèn)題提出者進(jìn)行溝通和交流。2、易于軟件的維護(hù)和功能的增減。對(duì)象的封裝性及對(duì)象之間的松散組合,都給軟件的修改和維護(hù)帶來(lái)了方便。3、可重用性好。重復(fù)使用一個(gè)類(類是對(duì)象的定義,對(duì)象是類的實(shí)例化),可以比較方便地構(gòu)造出軟件系統(tǒng),加上繼承的方式,極大地提高了軟件開發(fā)的效率。4、與可視化技術(shù)相結(jié)合,改善了工作界面。隨著基于圖形界面操作

3、系統(tǒng)的流行,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法也將深入人心。它與可視化技術(shù)相結(jié)合,使人機(jī)界面進(jìn)入gui時(shí)代。2.2.1 對(duì)象與類 一、對(duì)象對(duì)象是vb系統(tǒng)中的基本運(yùn)行時(shí)的實(shí)體,如窗體、各種控件等,它既包括作用于對(duì)象的操作(方法)和對(duì)象的響應(yīng)(事件)。將數(shù)據(jù)和處理這些數(shù)據(jù)的過(guò)程封裝在一起,即是一組程序代碼和數(shù)據(jù)的集合。二、類類是一個(gè)抽象的整體概念,對(duì)象是類的實(shí)例化。類與對(duì)象是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的基礎(chǔ)。以“汽車”為例,說(shuō)明類與對(duì)象的關(guān)系。汽車是一個(gè)籠統(tǒng)的名稱,是整體概念,我們把汽車看成一個(gè)“類”,一輛輛具體的汽車(比如你的汽車)就是這個(gè)類的實(shí)例,也就是這個(gè)類的對(duì)象。工具箱的各種控件并不是對(duì)象,而是代表了各個(gè)不

4、同的類。通過(guò)類的實(shí)例化,可以得到真正的對(duì)象。當(dāng)在窗體上畫一個(gè)控件時(shí),就將類轉(zhuǎn)換為對(duì)象,即創(chuàng)建了一個(gè)控件對(duì)象,也簡(jiǎn)稱為控件。圖2-1 對(duì)象與類的關(guān)系三、對(duì)象的建立和命名1、對(duì)象的建立方法一:?jiǎn)螕艄ぞ呦淇丶?duì)象,在窗體上按住左鍵拖拉到所需要的大小后釋放。方法二:雙擊工具箱控件對(duì)象,則立即在窗體出現(xiàn)一個(gè)默認(rèn)大小的對(duì)象框。2、編輯對(duì)象 先選中對(duì)象(單擊對(duì)象) 放大、縮小 刪除對(duì)象 復(fù)制對(duì)象3、對(duì)象的命名每一個(gè)對(duì)象都有自己的名字。每個(gè)窗體、控件對(duì)象在建立時(shí)vb系統(tǒng)給出了一個(gè)默認(rèn)名。用戶可通過(guò)屬性窗口設(shè)置(名稱)來(lái)給對(duì)象命名。命名的原則: 必須由字母或漢字開頭、隨后可以是字母、漢字、數(shù)字、下劃線(最好不用

5、)串組成。 長(zhǎng)度255個(gè)字符。2.2.1 對(duì)象與類 一、對(duì)象對(duì)象是vb系統(tǒng)中的基本運(yùn)行時(shí)的實(shí)體,如窗體、各種控件等,它既包括作用于對(duì)象的操作(方法)和對(duì)象的響應(yīng)(事件)。將數(shù)據(jù)和處理這些數(shù)據(jù)的過(guò)程封裝在一起,即是一組程序代碼和數(shù)據(jù)的集合。二、類類是一個(gè)抽象的整體概念,對(duì)象是類的實(shí)例化。類與對(duì)象是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的基礎(chǔ)。以“汽車”為例,說(shuō)明類與對(duì)象的關(guān)系。汽車是一個(gè)籠統(tǒng)的名稱,是整體概念,我們把汽車看成一個(gè)“類”,一輛輛具體的汽車(比如你的汽車)就是這個(gè)類的實(shí)例,也就是這個(gè)類的對(duì)象。工具箱的各種控件并不是對(duì)象,而是代表了各個(gè)不同的類。通過(guò)類的實(shí)例化,可以得到真正的對(duì)象。當(dāng)在窗體上畫一個(gè)控件時(shí)

6、,就將類轉(zhuǎn)換為對(duì)象,即創(chuàng)建了一個(gè)控件對(duì)象,也簡(jiǎn)稱為控件。圖2-1 對(duì)象與類的關(guān)系三、對(duì)象的建立和命名1、對(duì)象的建立方法一:?jiǎn)螕艄ぞ呦淇丶?duì)象,在窗體上按住左鍵拖拉到所需要的大小后釋放。方法二:雙擊工具箱控件對(duì)象,則立即在窗體出現(xiàn)一個(gè)默認(rèn)大小的對(duì)象框。2、編輯對(duì)象 先選中對(duì)象(單擊對(duì)象) 放大、縮小 刪除對(duì)象 復(fù)制對(duì)象3、對(duì)象的命名每一個(gè)對(duì)象都有自己的名字。每個(gè)窗體、控件對(duì)象在建立時(shí)vb系統(tǒng)給出了一個(gè)默認(rèn)名。用戶可通過(guò)屬性窗口設(shè)置(名稱)來(lái)給對(duì)象命名。命名的原則: 必須由字母或漢字開頭、隨后可以是字母、漢字、數(shù)字、下劃線(最好不用)串組成。 長(zhǎng)度255個(gè)字符。2.2.3 事件(event)及事件

7、過(guò)程(event procedure)一、事件事件可被對(duì)象識(shí)別的動(dòng)作(就是對(duì)象上所發(fā)生的事情)。在vb中,事件是預(yù)先定義好的、能夠被對(duì)象識(shí)別的動(dòng)作,如單擊(click)事件、雙擊(dblclick)事件、裝載(load)事件、鼠標(biāo)移動(dòng)(mousemove)事件等,不同的對(duì)象能夠識(shí)別不同的事件。當(dāng)事件發(fā)生時(shí),vb將檢測(cè)兩條信息、即發(fā)生的是哪種事件和哪個(gè)對(duì)象接收了事件。每種對(duì)象能識(shí)別一組預(yù)先定義好的事件,但并非每一種事件都會(huì)產(chǎn)生結(jié)果,因?yàn)関b只是識(shí)別事件的發(fā)生。為了使對(duì)象能夠?qū)δ骋皇录龀鲰憫?yīng)就必須編寫事件過(guò)程代碼。二、事件過(guò)程事件過(guò)程是指附在該對(duì)象上一段獨(dú)立的程序代碼,它在對(duì)象檢測(cè)到某個(gè)特定事件

8、時(shí)執(zhí)行(響應(yīng)該事件)。一個(gè)對(duì)象可以響應(yīng)一個(gè)或多個(gè)事件,因此可以使用一個(gè)和多個(gè)事件過(guò)程對(duì)用戶或系統(tǒng)的事件作出響應(yīng)。程序員只需編寫必須響應(yīng)的事件過(guò)程,而其他無(wú)用的事件過(guò)程則不必編寫,如命令按鈕的“單擊”(click)事件比較常見,其事件過(guò)程需要編寫代碼,而其mousedown或mouseup事件則可有可無(wú),程序員可根據(jù)需要選擇。事件過(guò)程的形式如下:sub 對(duì)象名_事件過(guò)程名(參數(shù)列表).(事件過(guò)程代碼)end subjc例如:sub command1_click()command1.visible=falseend subvisual basic具有可視化的編程機(jī)制,在程序設(shè)計(jì)時(shí)可按要求“畫”出各

9、種對(duì)象來(lái)設(shè)計(jì)圖形用戶界面,程序員只需編寫各對(duì)象要完成的功能的程序。實(shí)際上,在圖形用戶界面的應(yīng)用程序中,是由用戶的動(dòng)作即事件掌握著程序運(yùn)行的流向,每個(gè)事件都能驅(qū)動(dòng)一段程序的運(yùn)行。程序員只需編寫響應(yīng)用戶動(dòng)作的代碼,而各個(gè)動(dòng)作之間不一定有聯(lián)系。這樣的應(yīng)用程序代碼一般較短,程序既易于編寫又易于維護(hù)。這種事件驅(qū)動(dòng)的編程機(jī)制是非常適合圖形用戶界面的編程方式,是visual basic的一個(gè)突出特點(diǎn)。2.2.4 方法(method)在對(duì)象上可操作的過(guò)程,是vb系統(tǒng)提供的一種特殊的過(guò)程和函數(shù)方法。方法是面向?qū)ο蟮?,所以?duì)象的方法調(diào)用一般要指明對(duì)象。對(duì)象方法調(diào)用形式: 對(duì)象.方法 參數(shù)列表 如省略對(duì)象,表示當(dāng)前

10、對(duì)象,一般指窗體。例如:form1.print “vb程序設(shè)計(jì)”。 若當(dāng)前窗體是forml,則可寫為:print“vb程序設(shè)計(jì)”。在visual basic中,窗體和控件是具有自己的屬性、方法和事件的對(duì)象??梢园褜傩钥醋饕粋€(gè)對(duì)象的性質(zhì),把方法看作對(duì)象的動(dòng)作,而把事件看作對(duì)象的響應(yīng)。舉個(gè)日常生活中簡(jiǎn)單的例子有助于理解這些抽象的概念。如你對(duì)同伴說(shuō):“請(qǐng)把那輛藍(lán)色的別克2000型轎車開過(guò)來(lái)”,其實(shí)你的這句話里就包含了 visual basic的對(duì)象、屬性和方法,其中對(duì)象就是那輛“轎車”,也就是這件事情中的目標(biāo)物;“藍(lán)色”、“別克2000型”是用來(lái)描述轎車特征的,它就是轎車的屬性;“開過(guò)來(lái)”就是對(duì)轎車

11、實(shí)施的處理,即方法。vb的方法與事件過(guò)程類似,它可能是函數(shù),也可能是過(guò)程。它用于完成某種特定功能而不能響應(yīng)某個(gè)事件。如對(duì)象打?。╬rint)方法、顯示窗體(show)方法、移動(dòng)(move)方法等。每個(gè)方法完成某個(gè)功能,但其實(shí)現(xiàn)步驟和細(xì)節(jié)用戶既看不到、也不能修改,用戶能做的工作就是按照約定直接調(diào)用它們。方法只能在代碼中使用,其用法依賴于方法所需的參數(shù)的個(gè)數(shù)以及它是否具有返回值。當(dāng)方法不需要參數(shù)并且也沒有返回值時(shí),可用下面的格式調(diào)用對(duì)象方法。對(duì)象名方法名如圖片框picture1有刷新顯示方法refresh,在事件過(guò)程代碼中調(diào)用該方法的代碼為:picture1refreshl2.2.5 vb應(yīng)用程序

12、的工作方式 vb應(yīng)用程序采用的是以事件驅(qū)動(dòng)應(yīng)用程序的工作方式。下面是事件驅(qū)動(dòng)應(yīng)用程序中的典型工作方式: 啟動(dòng)應(yīng)用程序,裝載和顯示窗體。 窗體(或窗體上的控件)接收事件。事件可由用戶引發(fā)(例如通過(guò)鍵盤或鼠標(biāo)操作),可由系統(tǒng)引發(fā)(例如定時(shí)器事件),也可由代碼間接引發(fā)(例如當(dāng)代碼裝載窗體時(shí)的load事件)。 如果在相應(yīng)的事件過(guò)程中已編寫了相應(yīng)的程序代碼,就執(zhí)行該代碼。 應(yīng)用程序等待下一次事件。2.3.1 窗體屬性窗體屬性決定了窗體的外觀與操作。窗體外觀如圖2-2:圖2-2 窗體外觀一、基本屬性1、name名稱屬性(任何對(duì)象都具有的)創(chuàng)建的對(duì)象名稱,有默認(rèn)的名。在程序中,控件名是作為對(duì)象的標(biāo)識(shí)而引用,

13、不會(huì)顯示在窗體上。2、height、width、top和left屬性單位為twip:1 twip=1/20點(diǎn)=1/1440英寸=1/567cm注意:這四個(gè)屬性決定窗體(或控件)的大小,在容器中的位置。如圖2-3。圖2-3 3、caption 標(biāo)題屬性決定出現(xiàn)在窗體的標(biāo)題欄上的文本內(nèi)容,也是當(dāng)窗體被最小化后出現(xiàn)在窗體圖標(biāo)下的文本。如圖2-2中窗體的caption屬性值是“vb窗體”。4、字體font屬性組 fontname屬性是字符型,決定對(duì)象上正文的字體(缺省為宋體)。fontsize屬性是整型,決定對(duì)象上正文的字體大小。fontbold屬性是邏輯型,決定對(duì)象上正文是否是粗體。fontital

14、ic屬性是邏輯型,決定對(duì)象上正文是否是斜體。fontstrikethru屬性是邏輯型,決定對(duì)象上正文是否加一刪除線。fontunderline屬性是邏輯型,決定對(duì)象上正文是否帶下劃線。5、enabled屬性(邏輯值)決定控件是否可操作。true:允許用戶進(jìn)行操作,并對(duì)操作出響應(yīng)(缺省值)。false:呈暗淡色,禁止用戶進(jìn)行操作。6、visible屬性(邏輯值)決定控件是否可見true:運(yùn)行時(shí)控件可見(缺省值)。 false:運(yùn)行時(shí)控件隱藏,用戶看不到,但控件本身是存在的。7、backcolor屬性和forecolor屬性 backcolor屬性用于返回或設(shè)置對(duì)象的背景顏色。forecolor屬

15、性用于返回或設(shè)置在對(duì)象里顯示圖片和文本的前景顏色。它們是十六進(jìn)制長(zhǎng)整型數(shù)據(jù)。在程序代碼中可用windows運(yùn)行環(huán)境的紅-綠-藍(lán)(rgb)顏色方案,使用調(diào)色板或在代碼中使用rgb或qbcolor函數(shù)指定標(biāo)準(zhǔn)rgb顏色。例如:將窗體form1的背景色設(shè)置為紅色,則可使用下面三種情況:form1.backcolor=rgb(255,0,0)form1.backcolor=&hff& form1.backcolor=vbred 二、窗體的其它常用屬性 1、maxbutton最大化按鈕和minbutton最小化按鈕:當(dāng)值為true,有最大或最小化按鈕,false則無(wú)。 2、icon控制圖標(biāo)屬性:返回或設(shè)

16、置窗體左上角顯示或最小化時(shí)顯示的圖標(biāo)。注意:此屬性必須在controlbox屬性設(shè)置為true才有效。 3、controlbox控制菜單框?qū)傩裕涸O(shè)置true為有,如設(shè)置為false則無(wú)控件菜單,同時(shí)窗體也無(wú)最大化按鈕和最小化按鈕,即使maxbutton屬性和minbutton屬性設(shè)置為true。4、pictrue圖片屬性:設(shè)置窗體中要顯示的圖片。加載圖片操作同icon控制圖標(biāo)屬性。5、borderstyle:邊框風(fēng)格, 通過(guò)改變borderstyle屬性,可以控制窗體如何調(diào)整大小。 0-none:無(wú)邊框; 1-單線邊框,不可以改變窗口大小; 2-sizable:雙線邊框,可以改變窗口大小; 3

17、-fixed double:雙線框架,不可以改變窗口大小。 4-fixed tool window:窗體外觀與工具條相似。有關(guān)閉按鈕 ,不可以改變窗口大小。 5-sizable tool window:窗體外觀與工具條相似。有關(guān)閉按鈕 ,可以改變窗口大小。6、windowsstate屬性 0正常窗口狀態(tài),有窗口邊界; 1最小化狀態(tài),以圖標(biāo)方式運(yùn)行; 2最大化狀態(tài),無(wú)邊框,充滿整個(gè)屏幕。 7、autoredraw屬性該屬性決定窗體被隱藏或被另一窗口覆蓋之后重新顯示,是否重新還原該窗體被隱藏或覆蓋以前的畫面。即是否重畫如circle、line、pset和print等方法的輸出。當(dāng)為true時(shí),重新

18、還原該窗體以前的畫面。當(dāng)為false時(shí),則不重畫autoredraw屬性。2.3.2 窗體事件 窗體事件是窗體識(shí)別的動(dòng)作。與窗體有關(guān)的事件較多,visual basic 6.0中有30多個(gè),但平時(shí)在編程序時(shí)并不需要對(duì)所有事件編程,用戶只需掌握一些常用事件,了解這些事件的觸發(fā)機(jī)制即可。1、click事件在程序運(yùn)行時(shí)單擊窗體內(nèi)的某個(gè)位置,visual basic將調(diào)用窗體的fompclick事件。如果單擊的是窗體內(nèi)的控件,則只能調(diào)用相應(yīng)控件的click事件。2、dblclick事件程序運(yùn)行時(shí)雙擊窗體內(nèi)的某個(gè)位置,就觸發(fā)了兩個(gè)事件:第一次按動(dòng)鼠標(biāo)時(shí),觸發(fā)click事件,第二次按動(dòng)鼠標(biāo)產(chǎn)生dblcli

19、ck事件。3、load事件程序運(yùn)行時(shí),窗體被裝入工作區(qū),將觸發(fā)它的load事件,所以該事件通常用來(lái)在啟動(dòng)應(yīng)用程序時(shí)對(duì)屬性和變量初始化。4、unload事件卸載窗體時(shí)觸發(fā)該事件。5、resize事件無(wú)論是因?yàn)橛脩艚换ィ€是通過(guò)代碼調(diào)整窗體的大小,都會(huì)觸發(fā)一個(gè)resize事件。2.3.3 窗體方法窗體常用的方法有:打印輸出print、移動(dòng)move、清除cls、顯示show、隱藏hide等方法。使用的形式:對(duì)象. 方法一、print方法形式:對(duì)象.printspc(n)|tab(n)表達(dá)式列表;|,作用:在對(duì)象上輸出信息對(duì)象:窗體、圖形框或打印機(jī)(printer) ,省略對(duì)象在窗體上輸出。spc(n

20、)函數(shù):插入n個(gè)空格,允許重復(fù)使用。tab(n)函數(shù):左端開始右移動(dòng)n列,允許重復(fù)使用。;(分號(hào)):光標(biāo)定位上一個(gè)顯示的字符后。,(逗號(hào)):光標(biāo)定位在下一個(gè)打印區(qū)的開始位置處。每個(gè)打印區(qū)占14列。無(wú);,換行。開始打印的位置是由對(duì)象的currentx和currentx屬性決定,缺省為打印對(duì)象的左上角0,0?!纠吭诖绑wform1的單擊事件中寫入如下代碼:private sub form_click()a = 10: b = 3.14: c = 100print a=; a, b=; bprint a=; a, b=; bprint a=; a, b=; bprint 空一行print ; a=;

21、 a, b=; bprint a=; a, tab(18); b=; bprint a=; a, spc(18); b=; b printprint a=; a, b=; bprint tab(18); “a=”; a, “b=”; b 從第18列開始打印輸出print spc(18); a=; a, b=; bend sub程序運(yùn)行結(jié)果如圖:二、cls方法形式:對(duì)象.cls作用:清除運(yùn)行時(shí)在窗體或圖形框中顯示的文本或圖形。注意:不清除在設(shè)計(jì)時(shí)的文本和圖形。清屏后坐標(biāo)當(dāng)前回到原點(diǎn)。三、move方法形式:對(duì)象.move 左邊距離,上邊距離,寬度,高度作用:移動(dòng)窗體或控件,并可改變其大小。對(duì)象:可

22、以是窗體及除時(shí)鐘、菜單外的所有控件,省略代表窗體。左邊距離,上邊距離,寬度,高度:數(shù)值表達(dá)式,以twip為單位。如果是窗體對(duì)象,則“左邊距”和“上邊距”是以屏幕左邊界和上邊界為準(zhǔn)。其它則是以窗體的左邊和上邊界為準(zhǔn)?!纠渴褂胢ove方法移動(dòng)一個(gè)窗體。雙擊窗體,窗體移動(dòng)并定位在屏幕的左上角,同時(shí)窗體的長(zhǎng)寬也縮小一倍。為了實(shí)現(xiàn)這一功能,可以在窗體forml的“代碼”窗口中輸入下列代碼:private sub form_dblclick()form1.move 0,0,form1.width/2,form1.height/2end sub四、show(顯示)方法show方法用于在屏幕上顯示一個(gè)窗體,

23、調(diào)用 show 方法與設(shè)置窗體 visible 屬性為 true 具有相同的效果。其調(diào)用格式如下:窗體名.show vbmodal | vbmodeless說(shuō)明: 它有兩種可能值:vbmodal(缺?。┗騰bmodeless,show方法的可選參數(shù)表示從當(dāng)前窗口或?qū)υ捒蚯袚Q到其他窗口或?qū)υ捒蛑坝脩舯仨毑扇〉膭?dòng)作。當(dāng)參數(shù)為vbmodal時(shí),要求用戶必須對(duì)當(dāng)前的窗口或?qū)υ捒蜃龀鲰憫?yīng),才能切換到其他窗口。 如果要顯示的窗體事先未裝入,該方法會(huì)自動(dòng)裝入該窗體再顯示。 五、hide(隱藏)方法hide方法用于使指定的窗體不顯示,但不從內(nèi)存中刪除窗體。其調(diào)用格式為:窗體名.hide說(shuō)明: 當(dāng)一個(gè)窗體從屏

24、幕上隱去時(shí),其visible屬性被設(shè)置成false,并且該窗體上的控件也變得不可訪問(wèn),但對(duì)運(yùn)行程序間的數(shù)據(jù)引用無(wú)影響。若要隱去的窗體沒有裝入,則hide方法會(huì)裝入該窗體但不顯示。 【例】實(shí)現(xiàn)將指定的窗體在屏幕上進(jìn)行顯示或隱藏的切換。為了實(shí)現(xiàn)這一功能,可以在窗體forml的“代碼”窗口中輸入下列代碼:private sub form_click()form1.hide 隱藏窗體msgbox 單擊確定按鈕,使窗體重現(xiàn)屏幕 顯示信息forml.show 重現(xiàn)窗體end sub2.4.1 命令按鈕(commandbutton) 命令按鈕(commandbutton)控件:是接受用戶輸入的命令。輸入命令

25、可以有三種方式: 鼠標(biāo)單擊 按tab鍵焦點(diǎn)跳轉(zhuǎn)到該按鈕, 再按回車鍵 快捷鍵(alt+有下劃線的字母)一、屬性(一)基本屬性 name、height、width、top、left、enabled、visible、font等與窗體的使用相同。 (二)常用屬性1、caption:標(biāo)題屬性命令按鈕顯示的內(nèi)容,可在某字母前加“&”設(shè)置快捷鍵。例如:&ok,顯示ok2、default:確認(rèn)屬性(邏輯值),設(shè)置為true時(shí),按enter鍵相當(dāng)于用鼠標(biāo)器單擊了該按鈕。注意:一個(gè)窗體只能有一個(gè)按鈕的default設(shè)置為ture。3、cancel:取消功能屬性(邏輯值),當(dāng)設(shè)置為ture時(shí),程序運(yùn)行時(shí)按esc鍵

26、與單擊此命令按鈕的效果相同。注意:一個(gè)窗體只能有一個(gè)按鈕的cancel屬性設(shè)置為ture。4、value:檢查該按鈕是否按下,該屬性在設(shè)計(jì)時(shí)無(wú)效。5、picture:按鈕可顯示圖片文件(.bmp和.ico),只有當(dāng)style屬性值設(shè)為1時(shí)有效。6、style:確定顯示的形。0只能顯示文字,1文字、圖形均可。7、tooltiptext:設(shè)置工具提示,和picture結(jié)合使用。凡是使用過(guò)windows應(yīng)用軟件的用戶都非常熟悉這種情況,當(dāng)自己不是十分清楚軟件中某些圖標(biāo)按鈕的作用時(shí),可以把光標(biāo)移到這個(gè)圖標(biāo)按鈕上,停留片刻,在這個(gè)圖標(biāo)按鈕的下方就立即顯示一個(gè)簡(jiǎn)短的文字提示行,說(shuō)明這個(gè)圖標(biāo)按鈕的作用,當(dāng)把

27、光標(biāo)移開后,提示行立刻消失。visual basic為這一功能給命令按鈕提供了屬性“text1中text”,在運(yùn)行或設(shè)計(jì)時(shí),只需將該項(xiàng)屬性設(shè)置為需要的提示行文本即可。二、常用方法在程序代碼中,通過(guò)調(diào)用命令按鈕的方法,來(lái)實(shí)現(xiàn)與命令按鈕相關(guān)的功能。與命令按鈕相關(guān)的常用方法主要有:(一)move方法該方法的使用與窗體中的move方法一樣。visual basic系統(tǒng)中的所有可視控件都有該方法,不同的是窗體的移動(dòng)是對(duì)屏幕而言,而控件的移動(dòng)則是相對(duì)其“容器”對(duì)象而言。(二)setfocus方法該方法設(shè)置指定的命令按鈕獲得焦點(diǎn)。一旦使用setfocus方法,用戶的輸入(如按enter鍵)被立即引導(dǎo)到成為焦

28、點(diǎn)的按鈕上。使用該方法之前,必須要保證命令按鈕當(dāng)前處于可見和可用狀態(tài),即其visible和enabled屬性應(yīng)設(shè)置為true。三、常用事件單擊事件click。對(duì)命令按鈕控件來(lái)說(shuō),click事件是最重要的觸發(fā)方式。單擊命令按鈕時(shí),將觸發(fā)click事件,并調(diào)用和執(zhí)行已寫入click事件中的代碼。多數(shù)情況下,主要是針對(duì)該事件過(guò)程來(lái)編寫代碼。2.4.2 標(biāo)簽控件(label)標(biāo)簽控件label:用于顯示文本(輸出)信息,不能作為輸入信息的界面。一、基本屬性name、height、width、top、left、enabled、visible、font、forecolor、backcolor等與窗體的使用

29、相同。 二、常用屬性1、caption屬性caption屬性用來(lái)改變label控件中顯示的文本。caption屬性允許文本的長(zhǎng)度最多為1024字節(jié)。缺省情況下,當(dāng)文本超過(guò)控件寬度時(shí),文本會(huì)自動(dòng)換行,而當(dāng)文本超過(guò)控件高度時(shí),超出部分將被裁剪掉。2、alignment屬性用于設(shè)置caption屬性中文本的對(duì)齊方式,共有三種可選值:0左對(duì)齊(left justify)1右對(duì)齊(right justify)2居中對(duì)齊(center justify)3、backstyle屬性該屬性用于確定標(biāo)簽的背景是否透明。有兩種情況可選:值為0時(shí),表示背景透明,標(biāo)簽后的背景和圖形可見;值為1時(shí),表示不透明,標(biāo)簽后的背

30、景和圖形不可見。4、autosize屬性autosize屬性確定標(biāo)簽是否會(huì)隨標(biāo)題內(nèi)容的多少自動(dòng)變化。如果值為true,則隨caption內(nèi)容的大小自動(dòng)調(diào)整控件本身的大小,且不換行;如果值為false,表示標(biāo)簽的尺寸不能自動(dòng)調(diào)整,超出尺寸范圍的內(nèi)容不予顯示。5、wordwrap屬性 例如:在窗體上,放置5個(gè)標(biāo)簽,其名稱使用默認(rèn)值label1label5,它們的高度與寬度相同,在屬性窗口,按表2-1設(shè)置它們的屬性:表2-1默認(rèn)控件名name標(biāo)題caption有關(guān)屬性設(shè)置label1左對(duì)齊 alignment=0,borderstyle=1 label2水平居中alignment=1,borders

31、tyle=1 label3自動(dòng) autosize=true,wordwarp=false,borderstyle=1label4背景白 backcolor=&h00ffffff&,borderstyle=0 label5前景紅 forecolor=&h000000ff&,borderstyle=0 設(shè)置后各標(biāo)簽的顯示如圖2-4:圖2-4三、事件標(biāo)簽可響應(yīng)單擊(click)和雙擊(dblclick)事件,但一般情況不對(duì)它進(jìn)行編程。2.4.3 文本框(textbox) 文本框控件textbox:是一個(gè)文本編輯區(qū)域,可在該區(qū)域輸入,編輯和顯示正文內(nèi)容。一、屬性(一)基本屬性 name、height、

32、width、top、left、enabled、visible、font、forecolor、backcolor等與標(biāo)簽控件相同。 (二)常用屬性1、text文本屬性字符型。返回或設(shè)置文本框中顯示的內(nèi)容。text屬性是文本框的默認(rèn)屬性。(文本框沒有caption屬性)。例如:text1text“visllal bllsic程序設(shè)計(jì)”printi text1text等價(jià)于textl“visual basic程序設(shè)計(jì)”print textl2、maxlength:數(shù)值型。用于返回或設(shè)置在文本框中允許輸入的最大字符數(shù)。默認(rèn)值0為任意長(zhǎng)度值,表示在文本框中輸入的字符數(shù)沒有限制。例如:textlmaxle

33、ngth100 允許最大輸入字符數(shù)為1003、multiline:邏輯型。決定控件是否允許接受多行文本。如果該屬性被設(shè)置為false,文本框中只能輸入一行文本:若設(shè)為true,可以使用多行文本,即在輸入文本時(shí)可以用回車鍵換行輸入。默認(rèn)值為false。4、scrollbars:數(shù)值型。決定控件中有沒有滾動(dòng)條,可以取0,1,2,3四個(gè)不同值,當(dāng)multiline為true時(shí),該屬性才有效,滾動(dòng)條的形式。其含義分別為:0none:無(wú)滾動(dòng)條,默認(rèn)值;1horizontal:控件中只有水平滾動(dòng)條;2vertical控件中只有垂直滾動(dòng)條;3-both同時(shí)具有水平滾動(dòng)條和垂直滾動(dòng)條。5、locked:是否可

34、被編輯屬性,false,表示為可編輯。6、passwordchar屬性字符型。設(shè)置passwordchar屬性為了掩蓋文本框中輸入的字符。該屬性的設(shè)置只有在multiline設(shè)為 false才有效。默認(rèn)狀態(tài)下,passwordchar被設(shè)為空串(不是空格),用戶輸入的每個(gè)字符都顯示在文本框中;如果把它設(shè)為一個(gè)字符,例如“”,則用戶鍵入字符時(shí),文本框中顯示的只是“”號(hào),但text屬性接收的是用戶輸入的文本。7、selstart、sellength和seltext屬性這三個(gè)屬性是文本框中對(duì)文本的編輯屬性。selstart:數(shù)值型。程序運(yùn)行期間設(shè)定或返回當(dāng)前選擇文本的起始位置,若未選擇任何文本則為插

35、入點(diǎn)位置。0表示選擇第一個(gè)字符。該屬性值隨著用戶操作而改變,也可通過(guò)賦值改變。sellength:數(shù)值型。當(dāng)前選中的字符數(shù),只能在程序運(yùn)行期間設(shè)定或返回。當(dāng)在文本框中進(jìn)行選擇文本操作時(shí),該屬性值隨著選擇字符的多少而改變。也可以在程序代碼中賦值。例如:text1sellength0 表示未選中任何字符seltext:字符型。表示當(dāng)前所選取的文本字符串。如果當(dāng)前沒有選取文本,該屬性返回一個(gè)空字符串。如果在程序中對(duì)該屬性賦值,則用seltext屬性值代替文本框中選取的文本。例如:設(shè)文本框text1中有一行文本:visual basic programming并選擇了“programming”,執(zhí)行語(yǔ)

36、句text1seltext“程序設(shè)計(jì)”后,text1中顯示的文本,即text屬性值變成:visual basic程序設(shè)計(jì)這種情況下,屬性sellength的值將隨著改變,而selstart不會(huì)受影響。2.4.3 文本框(textbox) 二、常用事件(一)change當(dāng)改變文本框的text屬性時(shí)會(huì)引發(fā)該事件。當(dāng)用輸入一個(gè)字符,就會(huì)觸發(fā)一次change事件。(二)keypress(keyascii as integer)在鍵盤上按下某個(gè)鍵時(shí)觸發(fā)該事件。并返回一個(gè)keyascii參數(shù)(字符的ascii值)到該事件過(guò)程中。keypress用來(lái)識(shí)別鍵入的字符,適用于窗體和大部分可接受鍵盤輸入的控件。例

37、如:輸入“a”,則keyascii的值是65??捎煤瘮?shù)chr$(keyascii)可得到字符“a”。(三)lostfocus當(dāng)按下tab鍵使光標(biāo)離開當(dāng)前文本框,或者用鼠標(biāo)選擇窗體的其他對(duì)象時(shí)觸發(fā)該事件,稱為“失去焦點(diǎn)”事件。用change事件過(guò)程和lostfocus事件過(guò)程都可檢查文本框text屬性值,但后者更有效。(四)gotfocus當(dāng)用tab鍵或鼠標(biāo)選擇對(duì)象,或用setfocus方法使光標(biāo)落在控件(或窗體)上時(shí),觸發(fā)該事件,稱為“獲得焦點(diǎn)”。該事件適用于窗體和大部分可接受鍵盤輸入的控件。三、常用方法 文本框最有用的方法是:setfocus,使用形式:對(duì)象.setfocus功能:是把光標(biāo)移

38、到指定的文本框?qū)ο笾小etfocus方法的作用是把焦點(diǎn)移到指定的對(duì)象上,使對(duì)象獲得焦點(diǎn)。該方法適用于文本框、窗體及大部分當(dāng)前可見控件。windows雖然允許同時(shí)運(yùn)行多個(gè)程序,但只允許其中一個(gè)窗口處理鍵盤事件,這個(gè)窗口稱為“當(dāng)前窗口”。對(duì)于當(dāng)前窗口來(lái)說(shuō),它也將會(huì)含有多個(gè)能夠接受輸入的控件或窗體,例如文本框、組合框、按鈕和窗體本身都可接受鍵盤輸入。若一個(gè)鍵盤事件同時(shí)讓多個(gè)控件處理,顯然是不合理的。因此,windows規(guī)定當(dāng)前窗口中也只允許一個(gè)控件或窗體處理鍵盤事件,而其他對(duì)象都不能接受鍵盤輸入。這個(gè)處理鍵盤事件的對(duì)象稱為“擁有焦點(diǎn)”,而不能接受鍵盤輸入的對(duì)象稱為“不擁有焦點(diǎn)”。注意:一個(gè)對(duì)象原來(lái)不擁有焦點(diǎn),現(xiàn)在能夠接受鍵盤輸入了,稱為“獲得焦點(diǎn)”,反之,稱為“失去焦點(diǎn)”。【例】用change事件改變文本框的text屬性。在窗體上建立兩個(gè)命令按鈕和三個(gè)文本框,其name屬性均取默認(rèn)值:commandl,command2,text1,text2,text3,然后編寫如下事件過(guò)程:private sub command1_click()textltext“visual basic程序設(shè)計(jì)”end subprivate sub text1_change()text2textlcase(text1text)text3textucase(text1text

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論