官术网_书友最值得收藏!

1.3 窗體與基本控件

早期傳統(tǒng)的程序設(shè)計(jì)是基于求解過程來組織程序流程的。在這類程序中,數(shù)據(jù)和施加于數(shù)據(jù)的操作是獨(dú)立設(shè)計(jì)的,以對數(shù)據(jù)進(jìn)行操作的過程作為程序的主體。面向?qū)ο蟪绦蛟O(shè)計(jì)則以對象作為程序的主體。對象是數(shù)據(jù)和操作的“封裝體”,封裝在對象內(nèi)的程序通過“消息”來驅(qū)動(dòng)運(yùn)行。在圖形用戶界面上,消息可通過鍵盤或鼠標(biāo)的某種操作來傳遞。

面向?qū)ο蟪绦驁?zhí)行的基本方法是由事件來驅(qū)動(dòng)子程序(在Visual Basic.NET中將子程序稱為過程)的運(yùn)行。在Visual Basic.NET中定義了窗體和其他許多基本控件。窗體對象是Windows應(yīng)用程序的基本構(gòu)造模塊,是運(yùn)行應(yīng)用程序時(shí)與用戶交互操作的實(shí)際窗口。在窗體上設(shè)計(jì)各類控件對象,通過對象傳遞消息驅(qū)動(dòng)對象事件程序,完成某一特定的操作。

1.3.1 有關(guān)類與對象的概念

面向?qū)ο蟪绦蛟O(shè)計(jì)用類、對象的概念直接對客觀世界進(jìn)行模擬,客觀世界中存在的事物、事物所具有的屬性、事物間的聯(lián)系均可以在面向?qū)ο蟪绦蛟O(shè)計(jì)語言中找到相應(yīng)的機(jī)制,面向?qū)ο蟪绦蛟O(shè)計(jì)方法采用這種方式是合理的,它符合人們認(rèn)識(shí)事物的規(guī)律,改善了程序的可讀性,使人機(jī)交互更加貼近自然語言,這與傳統(tǒng)程序設(shè)計(jì)方法相比,是一個(gè)很大的進(jìn)步。

1.對象

對象(Object)是指現(xiàn)實(shí)世界中具體存在的實(shí)體。每一個(gè)對象都有自己的屬性(包括自己特有的屬性和同類對象的共同屬性)。屬性反映對象自身狀態(tài)的變化,表現(xiàn)為當(dāng)前的屬性值。

方法是用來描述對象動(dòng)態(tài)特征的一個(gè)操作序列。例如,對學(xué)生數(shù)據(jù)的輸入/輸出、按出生日期排序、查找某個(gè)學(xué)生的信息等。消息是用來請求對象執(zhí)行某一操作或回答某些信息的要求。實(shí)際上是一個(gè)對象對另一個(gè)對象的調(diào)用。

Visual Basic.NET程序設(shè)計(jì)的菜單欄、對話框以及對話框中的各種按鈕等,都可以抽象為一個(gè)個(gè)對象,每個(gè)對象有反映其特征的屬性,如對話框的大小、位置、顏色等。當(dāng)需要對象完成某種操作時(shí),可以給對象發(fā)送一個(gè)消息,例如用鼠標(biāo)單擊這一對象。當(dāng)它收到消息并進(jìn)行識(shí)別后,即啟動(dòng)相應(yīng)的程序來完成所需的功能。

2.類

類(Class)是具有相同屬性和方法的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述。在系統(tǒng)中通常有很多相似的對象,它們具有相同名稱和類型的屬性、響應(yīng)相同的消息、使用相同的方法。對每個(gè)這樣的對象單獨(dú)進(jìn)行定義是很費(fèi)事的,因此將相似的對象分組形成一個(gè)類,每個(gè)這樣的對象被稱為類的一個(gè)實(shí)例,一個(gè)類中的所有對象共享一個(gè)公共的定義,盡管它們對屬性所賦予的值不同。例如,所有的雇員構(gòu)成雇員類,所有的客戶構(gòu)成客戶類等。類的概念是面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念,通過它可實(shí)現(xiàn)程序的模塊化設(shè)計(jì)。

Visual Basic.NET提供各種類,根據(jù)類可以創(chuàng)建對象。例如,Visual Basic.NET工具箱中的按鈕代表Button類。每次向Visual Basic.NET中的窗體添加按鈕時(shí),就是在創(chuàng)建Button類的一個(gè)實(shí)例。Button類有特定的已定義的屬性、方法和事件,如名稱屬性、Text屬性、Move方法、Click事件等。同樣,對象也是由屬性、方法和事件組成的。

3.封裝

封裝(Encapsulation)是指把對象屬性和操作結(jié)合在一起,構(gòu)成獨(dú)立的單元,它的內(nèi)部信息對外界是隱蔽的,不允許外界直接存取對象的屬性,只能通過有限的接口與對象發(fā)生聯(lián)系。類是數(shù)據(jù)封裝的工具,對象是封裝的實(shí)現(xiàn)。類的訪問控制機(jī)制體現(xiàn)在類的成員中可以有公有成員、私有成員和保護(hù)成員。對于外界而言,只需要知道對象所表現(xiàn)的外部行為,而不必了解內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。

4.繼承

繼承(Inheritance)反映的是類與類之間抽象級(jí)別的不同。根據(jù)繼承與被繼承的關(guān)系,可分為衍類和基類,基類也稱為父類,衍類也稱為子類。正如“繼承”這個(gè)詞的字面含義一樣,子類將從父類那里獲得所有的屬性和方法,并且可以對這些獲得的屬性和方法加以改造,使之具有自己的特點(diǎn)。一個(gè)父類可以派生出若干子類,每個(gè)子類都可以通過繼承和改造獲得自己的一套屬性和方法,由此,父類表現(xiàn)出的是共性和一般性,子類表現(xiàn)出的是個(gè)性和特性,父類的抽象級(jí)別高于子類。繼承具有傳遞性,子類又可以派生出下一代孫類,相對于孫類,子類將成為其父類,具有較孫類高的抽象級(jí)別。繼承反映的類與類之間的這種關(guān)系,使得程序設(shè)計(jì)人員可以在已有的類的基礎(chǔ)上定義和實(shí)現(xiàn)新類,所以有效地支持了軟件構(gòu)件的復(fù)用,使得當(dāng)需要在系統(tǒng)中增加新特征時(shí)所需的新代碼最少。

5.多態(tài)性

不同的對象收到相同的消息產(chǎn)生不同的動(dòng)作,這種功能稱為多態(tài)性(Polymorphism)。將多態(tài)的概念應(yīng)用于面向?qū)ο蟪绦蛟O(shè)計(jì),增強(qiáng)了程序?qū)陀^世界的模擬性,使得對象程序具有了更好的可讀性,更易于理解,而且顯著提高了軟件的可復(fù)用性和可擴(kuò)充性。

1.3.2 Visual Basic.NET對象

在面向?qū)ο蟪绦蛟O(shè)計(jì)中,對象是組成程序的基本部件。在Visual Basic.NET中,所有窗體和控件都是對象。程序設(shè)計(jì)中使用的這些對象包括描述其特征的屬性、反映其動(dòng)作的行為(稱為方法)以及在一定條件下發(fā)生的事件,即屬性、方法、事件構(gòu)成一個(gè)對象的三要素。

1.對象的屬性

屬性(Property)是反映對象特征的數(shù)據(jù),例如,控件名稱、文本、大小等。屬性設(shè)置有兩種方式:

①設(shè)計(jì)對象時(shí)在屬性窗口設(shè)置屬性。

②在程序運(yùn)行時(shí)使用代碼設(shè)置屬性。例如:

2.對象的方法

方法(Method)是用來完成一定操作的一段程序。方法是面向?qū)ο蟮模{(diào)用時(shí)一定要指明對象。對象方法的調(diào)用格式為:

若省略對象,表示當(dāng)前對象,一般指窗體。例如:

此語句使Textbox1控件獲得焦點(diǎn),光標(biāo)在本文框內(nèi)閃爍。

3.對象的事件

事件(Event)是指由系統(tǒng)事先設(shè)定的、能為對象識(shí)別和響應(yīng)的動(dòng)作。事件發(fā)生在用戶與應(yīng)用程序交互時(shí),例如單擊控件、鍵盤輸入、移動(dòng)鼠標(biāo)等都是一些事件。也有部分事件由系統(tǒng)產(chǎn)生,不需要用戶激發(fā),如定時(shí)器事件、窗體裝載事件等。程序代碼就是為解決問題所編寫的程序。

每一種對象能夠“感受”的事件是不同的。例如,窗體能識(shí)別單擊和雙擊事件,而按鈕能識(shí)別單擊卻不能識(shí)別雙擊事件。每一種對象所能識(shí)別的事件,可以從該對象的程序代碼窗口中右上方的下拉列表框中看出。在事件框的左邊是對象框,當(dāng)在對象框中選定對象后,再在事件框中選定需要的事件,系統(tǒng)就會(huì)自動(dòng)生成一個(gè)約定名稱的子程序。該子程序就是處理該事件的程序,稱為事件過程,一般格式如下:

其中,對象引用指向引發(fā)事件的對象,事件信息是與事件相關(guān)的信息。例如,按鈕Button1的Click事件過程為:

程序運(yùn)行時(shí),單擊按鈕Button1,就會(huì)執(zhí)行事件過程代碼,在輸出窗口中輸出字符“A”的ASCII碼值65。一個(gè)動(dòng)作可能同時(shí)發(fā)生多個(gè)事件。例如單擊鼠標(biāo)同時(shí)發(fā)生了Click、MouseDown、MouseUp事件,編程時(shí),只要對需要的事件過程編碼,無編碼的事件為空事件,執(zhí)行該事件過程不實(shí)現(xiàn)任何功能。

事件驅(qū)動(dòng)編程機(jī)制有如下兩個(gè)基本要點(diǎn):

①應(yīng)用程序由對象組成,每個(gè)對象都有預(yù)先定義的事件,每個(gè)事件的發(fā)生都依賴于一定的條件(即用戶的驅(qū)動(dòng)或來自系統(tǒng)的觸發(fā))。

②每個(gè)事件發(fā)生后系統(tǒng)該做出什么反應(yīng),則取決于用戶給該事件過程編寫了什么代碼,即由用戶控制事件的發(fā)生,由代碼做出響應(yīng)。

1.3.3 窗體

窗體(Form)對象是Windows應(yīng)用程序的基本構(gòu)造模塊,是運(yùn)行應(yīng)用程序時(shí)與用戶交互操作的實(shí)際窗口。窗體有自己的屬性、事件和方法用于控制其外觀和行為。

建立一個(gè)窗體Form1,系統(tǒng)自動(dòng)創(chuàng)建3個(gè)相關(guān)文件:窗體設(shè)計(jì)界面文件Form1.Designer.vb、窗體代碼文件Form1.vb、窗體資源文件Form1.resx。

1.窗體的常用屬性

窗體的屬性決定了窗體的外觀和狀態(tài)。對于窗體的大部分屬性,既可以在屬性窗口中設(shè)置,也可以在程序代碼中設(shè)置,有少數(shù)屬性只能在設(shè)計(jì)狀態(tài)或運(yùn)行狀態(tài)設(shè)置。窗體除了具有通用屬性外,還具有以下特有的屬性:

①FormBorderStyle屬性:用于設(shè)置窗體的邊框樣式。具體取值含義如下:

●?None:表示窗體無邊框,無法移動(dòng)及改變大小。

●?Fixed Single:表示窗體為單線邊框,可移動(dòng)但不能改變大小。

●?Fixed 3D:表示窗體為立體邊框,可移動(dòng)但不能改變大小。

●?Fixed Dialog:表示窗體為固定對話框,不能改變大小。

●?Sizable:表示窗體為雙線邊框,可移動(dòng)并可改變大小。這是該屬性的默認(rèn)值。

●?Fixed ToolWindow:表示窗體外觀與工具條相似,只有關(guān)閉按鈕,不能改變大小。

●?Sizable ToolWindow:表示窗體外觀與工具條相似,只有關(guān)閉按鈕,能改變大小。

②ControlBox屬性:設(shè)置窗體標(biāo)題欄上是否具有控制菜單欄和按鈕,其設(shè)置值可為True或False。當(dāng)設(shè)置值為True(默認(rèn)值)時(shí),窗體中將顯示控制欄按鈕。另外,該屬性的作用還與BorderStyle屬性有關(guān)系。如果將BorderStyle屬性設(shè)置為None,則該屬性將不起作用。注意:ControlBox屬性只適用于窗體。

③WindowsState屬性:設(shè)置程序運(yùn)行中窗體的最小化、最大化和正常這3種狀態(tài)。其設(shè)置值及其功能如下:

●?Normal:表示程序運(yùn)行時(shí),窗體為正常狀態(tài),有窗口邊界。

●?Minimized:表示程序運(yùn)行時(shí),窗體最小化為一個(gè)示意圖標(biāo),為最小化狀態(tài)。

●?Maximized:表示程序運(yùn)行時(shí),窗口充滿整個(gè)屏幕,無邊界,為最大化狀態(tài)。

④Icon屬性:用來設(shè)置窗體最小化時(shí)的圖標(biāo),圖標(biāo)文件是.ico格式的文件。該屬性只適用于窗體。

⑤BackGroundImage屬性:設(shè)置窗體中要顯示的圖形。

⑥MaximizeBox屬性:用來設(shè)置窗體是否具有最大化按鈕,其設(shè)置值可為True或False。當(dāng)設(shè)置為False時(shí),則窗體無最大化按鈕。該屬性只適用于窗體。

⑦M(jìn)inimumBox屬性:用來設(shè)置窗體是否具有最小化按鈕,其設(shè)置值可為True或False。當(dāng)設(shè)置為False時(shí),則窗體無最小化按鈕。該屬性只適用于窗體。

2.添加窗體

新建一個(gè)項(xiàng)目,自動(dòng)創(chuàng)建第一個(gè)窗體。在建好第一個(gè)窗體后可以根據(jù)需要繼續(xù)向這個(gè)項(xiàng)目中添加其他窗體。向一個(gè)項(xiàng)目中添加窗體,既可添加一個(gè)新窗體,也可以添加一個(gè)已經(jīng)建好存在的窗體。添加窗體有2種常用的方法:

①選擇“項(xiàng)目”菜單中的“添加Windows窗體”命令。

②選擇“項(xiàng)目”菜單中的“添加新項(xiàng)”命令。

③右擊解決方案資源管理器窗口中的項(xiàng)目名稱,在彈出的快捷菜單中選擇“添加”→“新建項(xiàng)”命令。

這3種操作都會(huì)打開“添加新項(xiàng)”對話框,如圖1-1-7所示。

圖1-1-7 “添加新項(xiàng)”對話框

如果需要添加現(xiàn)存窗體,可選擇“項(xiàng)目”菜單中的“添加現(xiàn)有項(xiàng)”命令,打開“添加現(xiàn)有項(xiàng)”對話框,選擇窗體文件,如圖1-1-8所示。

圖1-1-8 “添加現(xiàn)有項(xiàng)”對話框

3.刪除窗體

在解決方案資源管理器窗口中,右擊要?jiǎng)h除窗體的名稱,在彈出的快捷菜單中選擇“從項(xiàng)目中排除”命令,即可刪除此窗體。

4.設(shè)置啟動(dòng)窗體

當(dāng)程序運(yùn)行時(shí),首先運(yùn)行的窗體叫啟動(dòng)窗體。默認(rèn)情況下,在設(shè)計(jì)階段建立的第一個(gè)窗體被指定為啟動(dòng)窗體,也可以選擇一個(gè)窗體作為程序運(yùn)行的啟動(dòng)窗體,操作步驟如下:

①從“項(xiàng)目”菜單中選擇“(項(xiàng)目名)屬性”命令或者在解決方案資源管理器中右擊項(xiàng)目名,在彈出的快捷菜單中選擇“屬性”命令,打開“屬性”對話框。

②在“屬性”對話框中,選擇“應(yīng)用程序”選項(xiàng)卡。在“啟動(dòng)窗體”下拉列表框中,選擇作為啟動(dòng)窗體的窗體,單擊“確定”按鈕。

5.窗體操作的方法

在多重窗體應(yīng)用程序中,由于多個(gè)窗體的存在,必然涉及各個(gè)窗體的添加、窗體的卸載、窗體的顯示、窗體的隱藏等操作,Visual Basic.NET對應(yīng)這些操作提供了Show方法、Hide方法、ShowDialog方法。例如,在窗體Form1中用代碼打開窗體Form2,采用以下語句:

Show方法將Form2作為普通的窗體顯示出來,而ShowDialog方法則將其作為模式對話框進(jìn)行顯示。這兩種方法的區(qū)別在于,對Show方法的調(diào)用立即返回,F(xiàn)orm1繼續(xù)執(zhí)行Show方法調(diào)用后面的代碼,而對ShowDialog的調(diào)用將被阻塞,直到Form2被關(guān)閉為止。此外,ShowDialog方法顯示對話框后還能接收到一個(gè)返回值,表示用戶在對話框中進(jìn)行操作的結(jié)果。只需在Form2中的恰當(dāng)位置將其自身的DialogResult屬性設(shè)置為DialogResoult枚舉的某個(gè)值之一,就可以關(guān)閉Form2并向Form1返回這個(gè)DialogResult值。

6.窗體的常用事件

窗體的事件較多,常用的有:

①Click事件:當(dāng)單擊窗體的空白區(qū)域時(shí),觸發(fā)該事件。

②DoubleClick事件:當(dāng)雙擊窗體的空白區(qū)域時(shí),觸發(fā)該事件。應(yīng)當(dāng)注意,雙擊事件包含單擊事件,雙擊一次要先觸發(fā)一次單擊事件,然后再觸發(fā)一次雙擊事件,因此,在編程時(shí),對同一個(gè)對象,一般不要同時(shí)使用單擊和雙擊事件過程。

③Load事件:當(dāng)用Load語句將窗體加載到內(nèi)存時(shí),觸發(fā)該事件。

④Activated事件:當(dāng)窗體變成活動(dòng)窗體時(shí),觸發(fā)該事件。

1.3.4 基本對象

1.按鈕對象

按鈕(Button)主要用來執(zhí)行某一功能,通常在按鈕的Click事件中編寫一段程序,當(dāng)用戶單擊這個(gè)按鈕時(shí),就會(huì)啟動(dòng)這段程序,完成某一特定的操作。

(1)按鈕的常用屬性

①Enabled屬性:設(shè)置按鈕是否能被按下。設(shè)定值為True(默認(rèn)值)時(shí)表示該按鈕能被按下以執(zhí)行特定功能,為False表示該按鈕不能按下來執(zhí)行特定功能。

②FlatStyle屬性:設(shè)置按鈕的外觀。有以下4種取值:

●?Flat:按鈕以平面顯示。

●?Popup:鼠標(biāo)在按鈕上時(shí)以Flat形式顯示,否則以Standard顯示。

●?Standard:該控件的外觀為三維。

●?System:由操作系統(tǒng)決定外觀形式。

③DialogResult屬性:當(dāng)將窗體作為對話框調(diào)用時(shí),設(shè)置返回結(jié)果。如果用戶按下此按鈕,將返回此屬性中的值。

(2)按鈕的常用方法

可以使用Focus方法將焦點(diǎn)移至指定的按鈕,使指定的按鈕被選中,即獲得焦點(diǎn)。

注意:Focus方法用于可視窗體或控件對象,但不能用該方法把焦點(diǎn)移到Enabled屬性被設(shè)置為False的窗體或控件上。如果已在設(shè)計(jì)時(shí)將Enabled屬性設(shè)置為False,必須在使用Focus方法之前,先將對象的Enabled屬性設(shè)置為True,才能使其接收焦點(diǎn)。

(3)按鈕的常用事件

按鈕可以接受許多事件,例如,鼠標(biāo)單擊(Click)事件、鼠標(biāo)按下(MouseDown)事件、鼠標(biāo)松開(MouseUp)事件、鍵盤按下(KeyDown)事件和鍵盤松開(KeyUp)事件等,其中最常用的是Click事件,當(dāng)用戶在按鈕上單擊時(shí)觸發(fā)。

【例1-1】輸入半徑,計(jì)算圓的面積和周長,程序運(yùn)行界面如圖1-1-9所示。

圖1-1-9 計(jì)算圓的周長和面積程序的運(yùn)行界面

在窗體上放置3個(gè)Lable控件和3個(gè)TextBox控件,分別用于輸入圓的半徑、顯示面積和周長,再放置3個(gè)Button控件,分別用于求面積、求周長和退出窗體。各控件的主要屬性如表1-1-2所示。

表1-1-2 控件的屬性設(shè)置

在程序的代碼窗口編寫下列代碼:

2.標(biāo)簽對象

標(biāo)簽(Label)是Visual Basic.NET中最簡單的控件,用于顯示字符串,通常顯示的是文字說明信息,但不能編輯標(biāo)簽控件。

使用標(biāo)簽的情況很多,通常用標(biāo)簽來標(biāo)注本身不具有Text屬性的控件。例如,可用標(biāo)簽為文本框、列表框、組合框等控件來添加描述性的文字。還可編寫代碼改變標(biāo)簽控件的顯示文本以響應(yīng)運(yùn)行時(shí)的事件。例如,若應(yīng)用程序需要用幾分鐘處理某個(gè)操作,則可用標(biāo)簽顯示處理情況的信息。

(1)標(biāo)簽的常用屬性

標(biāo)簽的屬性很多,除了具有和窗體相同的名稱、Text屬性外,還有以下幾個(gè)常用的屬性。

①AutoSize屬性:設(shè)置控件是否能夠自動(dòng)調(diào)整大小以顯示所有的內(nèi)容。其中,True(默認(rèn)值)表示能夠自動(dòng)調(diào)整大小,F(xiàn)alse表示不能自動(dòng)調(diào)整大小。

②BorderStyle屬性:設(shè)置標(biāo)簽的邊框樣式。其值可以為None(默認(rèn)值)、Fixed Single或Fixed3D,分別表示無邊框、單線邊框和立體邊框。

③Image屬性:設(shè)置標(biāo)簽的背景圖片。在程序中采用以下語句改變標(biāo)簽的背景圖片:

(2)標(biāo)簽的常用方法

常用的標(biāo)簽方法有Show、Hide等,用于標(biāo)簽控件的顯示和隱藏。

(3)標(biāo)簽的常用事件

一般很少使用標(biāo)簽事件,Click事件在單擊標(biāo)簽時(shí)觸發(fā)。

【例1-2】設(shè)計(jì)一個(gè)窗體說明標(biāo)簽的基本應(yīng)用方法。

首先創(chuàng)建一個(gè)項(xiàng)目,系統(tǒng)在其中自動(dòng)添加一個(gè)窗體,在該窗體中放置4個(gè)標(biāo)簽。各個(gè)標(biāo)簽的屬性如表1-1-3所示。

表1-1-3 標(biāo)簽的屬性設(shè)置

窗體的執(zhí)行界面如圖1-1-10所示。

圖1-1-10 窗體的執(zhí)行界面

4.文本框?qū)ο?/b>

文本框(TextBox)常用來輸入和輸出信息,是Visual Basic.NET中顯示和輸入文本的主要對象,也是Windows用戶界面中最常用的控件。文本框提供了基本文字處理功能,在Windows環(huán)境中幾乎所有的輸入動(dòng)作都是利用文本框來完成的。文本框是個(gè)相當(dāng)靈活的輸入工具,可以輸入單行文本,也可以輸入多行文本,還具有根據(jù)控件的大小自動(dòng)換行以及添加基本格式的功能。

(1)文本框的常用屬性

文本框除了具有和窗體相同的名稱、Text屬性外,還有以下幾個(gè)常用的屬性。

①M(fèi)axLength屬性:設(shè)置文本框中輸入的字符串長度是否有限制。默認(rèn)值為0,表示該單行文本框中字符串的長度只受操作系統(tǒng)內(nèi)存的限制。若設(shè)置為大于0的數(shù),則表示能夠輸入的最大字符數(shù)目。

②MultiLine屬性:設(shè)置文本框是否以多行方式顯示文本。設(shè)置為True時(shí)以多行文本方式顯示;設(shè)置為False(默認(rèn))時(shí)以單行方式顯示,超出文本框?qū)挾鹊牟糠直唤爻?/p>

③PasswordChar屬性:設(shè)置是否在控件中顯示用戶輸入的字符。如果該屬性設(shè)置為某一字符,那么無論Text屬性值是什么,在文本框中都只顯示該字符。另外,要想使該屬性有效,MultiLine屬性必須設(shè)置為False。

為了在對話框中創(chuàng)建一個(gè)密碼輸入文本框,應(yīng)該使用PasswordChar屬性。

④ScrollBars屬性:設(shè)置文本框是否有垂直或水平滾動(dòng)條。其中的值有如下4種:

●?None(默認(rèn)值):表示沒有滾動(dòng)條。

●?Horizontal:表示僅有水平滾動(dòng)條。

●?Vertical:表示僅有垂直滾動(dòng)條。

●?Both:表示有水平和垂直兩種滾動(dòng)條。

注意:文本框控件的ScrollBars屬性設(shè)置為1、2或3時(shí),必須將MultiLine屬性設(shè)置為True,滾動(dòng)條才會(huì)出現(xiàn)。

⑤ReadOnly屬性:決定運(yùn)行時(shí)用戶可否在此文本框中輸入文本。為True時(shí)為只讀,為False(默認(rèn))時(shí)可讀可寫。

⑥AcceptsReturn和AcceptsTab屬性:如果設(shè)置為True,則多行文本框會(huì)將CRLF和制表符當(dāng)作有效字符。要禁止在文本框中輸入CRLF,請將此屬性設(shè)置為False。

⑦WordWrap屬性:決定文本框的文字是否自動(dòng)換行。為True(默認(rèn))時(shí)自動(dòng)換行,為False時(shí)不自動(dòng)換行。

⑧CharacterCasing控制用戶在此控件中輸入的字母的大小寫。選項(xiàng)包括Normal、UpperCase和LowerCase。

⑨TextAlign當(dāng)用戶在文本區(qū)域輸入數(shù)據(jù)時(shí),此屬性控制文本的對齊方式??蓪⒋藢傩栽O(shè)置為Left、Right或Center。只有將MultiLine屬性設(shè)置為True,才可以在文本框內(nèi)用Alignment屬性設(shè)置文本的對齊方式。如果MultiLine屬性是False,則Alignment屬性不起作用。

⑩SelectionLength、SelectionStart和SelectedText屬性:SelectionLength返回/設(shè)置選定的字符數(shù);SelectionStart返回/設(shè)置選定文本的起始點(diǎn);SelectedText返回/設(shè)置包含當(dāng)前選定文本的字符串。

(2)文本框的常用方法

文本框的方法較少使用,較常用的方法是SetFocus。SetFocus方法用于將焦點(diǎn)移至文本框(也就是使插入點(diǎn)進(jìn)入文本框以便接收輸入信息)。

(3)文本框的常用事件

文本框較常用的事件是GotFocus、LostFocus、TextChanged和KeyPress。

①GotFocus事件:在文本框獲得焦點(diǎn)時(shí)觸發(fā)該事件。獲得焦點(diǎn)可以通過諸如按【Tab】鍵切換,或單擊對象之類的用戶動(dòng)作,或在代碼中用SetFocus方法改變焦點(diǎn)來實(shí)現(xiàn)。

②LostFocus事件:在文本框失去焦點(diǎn)時(shí)觸發(fā)該事件。也就是說當(dāng)按下【Tab】鍵離開當(dāng)前文本框或用鼠標(biāo)選擇其他對象時(shí)觸發(fā)該事件。

③TextChanged事件:在改變文本框的內(nèi)容時(shí)觸發(fā)該事件。

④KeyPress事件:在文本框中按任一鍵時(shí)觸發(fā)該事件。

【例1-3】設(shè)計(jì)一個(gè)窗體,說明文本框的基本應(yīng)用方法。

新建一個(gè)項(xiàng)目,在項(xiàng)目中自動(dòng)添加一個(gè)窗體,在其中創(chuàng)建兩個(gè)標(biāo)簽和兩個(gè)文本框。標(biāo)簽用于顯示提示信息,其標(biāo)題分別為“密碼”和“明碼”。兩個(gè)文本框中,上一個(gè)TextBox1是主文本框,用于輸入密碼,密碼輸入時(shí)以“*”形式顯示出來,該文本框的PasswordChar屬性設(shè)置為“*”。屏幕下方的文本框的名稱為TextBox2,用于以明碼方式顯示在第一個(gè)文本框中輸入的內(nèi)容。為此,在文本框TextBox1上設(shè)計(jì)如下事件過程:

當(dāng)在第一個(gè)文本框中輸入密碼時(shí),將在第二個(gè)文本框中顯示該明碼,其執(zhí)行界面如圖1-1-11所示。

圖1-1-11 文本框執(zhí)行界面

主站蜘蛛池模板: 财经| 巫山县| 图们市| 大港区| 淳安县| 桂平市| 甘肃省| 专栏| 商南县| 大英县| 凤山县| 东平县| 天门市| 孟州市| 南木林县| 博乐市| 荣昌县| 平邑县| 德兴市| 金堂县| 茌平县| 怀柔区| 深水埗区| 瑞安市| 兴隆县| 仁布县| 郴州市| 承德市| 开封县| 康马县| 汽车| 汤阴县| 乌兰县| 黄石市| 竹北市| 定远县| 保靖县| 阿瓦提县| 长沙市| 阳山县| 广安市|