版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、3.1 VB.NET程序的結(jié)構(gòu) 3.2 基本語句 3.3 數(shù)據(jù)輸入與輸出 3.4 使用對話框 3.5 實踐檢驗,第3章 順序結(jié)構(gòu)設計,本章知識點: VB.NET程序的結(jié)構(gòu) 基本語句 數(shù)據(jù)輸入與輸出 對話框的使用,第3章 順序結(jié)構(gòu)設計,3.1 VB.NET程序的結(jié)構(gòu),在VB.NET 中,編寫的任何代碼都必須按照以下順序,否則會產(chǎn)生編譯錯誤。 - Option語句。 - Imports語句。 - Main過程。 - 若適用,還有Class、Module和Namespace語句。 此外,一個程序可以包括條件編譯指令(如#If.Then.#Else),根據(jù)條件編譯選定的 Visual Basic 代碼
2、塊。這些語句可以放置在模塊的任何位置,一般把它們放在結(jié)尾 3.1.1Option 語句 Option 語句為后續(xù)的代碼建立基本的規(guī)則,以防止語法和邏輯錯誤,包括Option Explicit、Option Strict及Option Compare三條語句。 1 Option Explicit 語句 這種語句用于在文件級強制對該文件中的所有變量進行顯式聲明,可縮短以后用于調(diào)試的時間。,1)格式 Option Explicit On | Off 2)說明 - On :可選項。啟用Option Explicit 檢查。如果在Option Explicit 語句后沒有指定On或Off,則默認為On。
3、 - Off:可選項。禁用 Option Explicit 檢查。如果使用,則Option Explicit 語句必須出現(xiàn)在文件中其他所有源語句之前。當Option Explicit 出現(xiàn)在文件中時,必須使用Dim、Private、Public或ReDim語句顯式聲明所有變量。試圖使用未聲明的變量名將發(fā)生編譯時錯誤。如果沒有使用Option Explicit 語句,則所有未聲明的變量都是Object 類型。 使用Option Explicit可避免拼錯現(xiàn)有變量的名稱,或避免在變量范圍不清楚的代碼中產(chǎn)生混淆。如果代碼中沒有指定Option Explicit,編譯器的默認設置將是Option Ex
4、plicit On。 2 Option Strict 語句 Option Strict 語句必須出現(xiàn)在文件中的任何其他源代碼語句之前。 VB.NET允許將某些數(shù)據(jù)類型轉(zhuǎn)換為其他數(shù)據(jù)類型。在將一種數(shù)據(jù)類型的值轉(zhuǎn)換為另一種精度較低或容量較小的數(shù)據(jù)類型時(即“收縮轉(zhuǎn)換”),可能發(fā)生數(shù)據(jù)丟失。如果此類收縮轉(zhuǎn)換失敗,將會發(fā)生運行時錯誤。Option Strict 確??蔀檫@些收縮轉(zhuǎn)換提供編譯時通知,從而可避免這種錯誤。 1) 格式 Option Strict On | Off ,2) 說明 - On:可選項。啟用Option Strict 檢查。如果在Option Strict 語句之后未指定On或Of
5、f,則默認為Off。 - Off:可選項。禁用 Option Strict 檢查。 代碼中沒有指定 Option Strict,編譯器的默認設置將是Option Strict Off。 3 Option Compare 語句 用于聲明當比較字符串數(shù)據(jù)時所使用的默認比較方法:按它們的Binary排列或Text排列。 1) 格式 Option Compare Binary | Text 2) 說明 - Binary :可選項。按字符的內(nèi)部二進制表示形式導出的排序順序進行字符串比較。 - Text :可選項。按系統(tǒng)的區(qū)域設置確定的不區(qū)分大小寫的文本排序順序進行字符串比較。 如果程序未包括 Optio
6、n Compare 語句,則默認的文本比較方法是 Binary。 3.1.2Imports 語句 Imports 語句允許對類和其他定義在導入命名空間的類型進行命名,而無須對它們進行限制。,1) 格式 Imports = 或: Imports = . 2)說明 - :可選項。一個名稱,作為 的別名使用。當Imports 語句不包括 時,即可在文件中無條件訪問指定的 中所定義的元素。如果指定 ,則必須將 用作命名空間所包含名稱的限定符。當需要使用在一個或多個命名空間中聲明的同名項時,別名是有用的。 - :必選項。所導入的命名空間的名稱。命名空間可以有任何數(shù)量的嵌套級深度。 - :可選項。命名空間
7、中所聲明的元素名稱。可以是枚舉、結(jié)構(gòu)、類或模塊。 每個文件可以包含任意數(shù)量的 Imports 語句。Imports 語句必須位于任何聲明(包括 Module 或 Class 語句)之前,并位于任何標識符引用之前。 Imports 語句的可用元素的范圍取決于使用Imports語句時的具體程度。例如,如果只指定了命名空間,那么該命名空間的所有惟一命名的成員、以及該命名空間內(nèi)模塊的成員都是無條件可用的。如果同時指定了命名空間和該命名空間的一個元素的名稱,則只有該元素的成員無條件可用。 不允許在模塊級定義與導入別名具有相同名稱的成員。,舉例: 導入 Microsoft.VisualBasic.Stri
8、ngs 類并給其分配一個別名StrN,可用來訪問Right方法的。 Imports StrN = Microsoft.VisualBasic.Strings Sub ShowNET () MsgBox(StrN.Right(VisualBasic.NET, 4) 顯示 .NET End Sub 3.1.3 Main過程 Main過程是應用程序的起始點,即運行代碼時訪問的第一個過程。Main是放置需要首先訪問的代碼的地方。在Main中,可以決定在程序啟動時首先加載的窗體,確定系統(tǒng)上是否已在運行用戶的應用程序副本,為應用程序建立一組變量,或者打開應用程序需要的數(shù)據(jù)庫。 如果要在類中聲明Main過程
9、,必須使用Shared關(guān)鍵字。在模塊中,Main不必是Shared。 有四種方法可以聲明Main過程: - Sub Main()。 - Sub Main(ByVal CmdArgs() As String)。 - Function Main() As Integer。 - Function Main(ByVal CmdArgs() As String) As Integer。 最簡單的方法是聲明一個不帶參數(shù)或不返回值的Sub過程,如:,Public Shared Sub Main() Main 還可以返回一個 Integer值,操作系統(tǒng)將其作為程序的退出代碼。其他程序可以通過檢查Windows
10、 ERRORLEVEL值來測試該代碼。若要返回退出代碼,必須將Main聲明為 Function過程而不是Sub過程,如下所示: Public Shared Function Main() As Integer MsgBox(Hello World!) Return 0 返0表示正常 End Function Main還可以采用一個String數(shù)組作為參數(shù)。數(shù)組中的每個字符串均包含一個用于調(diào)用程序的命令行參數(shù)??梢愿鶕?jù)它們的值采取不同的操作。若要獲取命令行參數(shù),以如下方式聲明Main: Public Shared Sub Main(ByVal CmdArgs() As String) Dim A
11、rgNum As Integer 命令行參數(shù)數(shù)組的索引下標變量 If CmdArgs.Length 0 Then 是否有參數(shù) For ArgNum = 0 To UBound(CmdArgs) 根據(jù)命令行的不同參數(shù)做不同的處理 Next End If End Sub,3.2 基本語句,Visual Basic中的語句是完整的指令。它可以包含關(guān)鍵字、運算符、變量、常數(shù)和表達式。每個語句屬于下面兩種類別之一: 聲明語句:這種語句命名變量、常數(shù)或過程,還可指定數(shù)據(jù)類型。 可執(zhí)行語句:這種語句啟動操作。這些語句可以執(zhí)行方法或函數(shù),它們可以依次通過或分支通過代碼塊??蓤?zhí)行語句包括賦值語句,這種語句將值或
12、表達式賦予變量或常數(shù)。 3.2.1 聲明語句 使用聲明語句可命名和定義過程、變量、數(shù)組和常數(shù)。 聲明的同時也定義了它們的范圍,具體取決于放置聲明的位置和用來聲明它們的關(guān)鍵字。有關(guān)更多信息,請參見第2章的2.5.4節(jié)。 下面的示例包含三個聲明。 Public Sub ApplyFormat() Const limit As Integer = 33 Dim myWidget As Widget 插入過程代碼 End Sub,首先,Public Sub 語句(帶有匹配的 End Sub 語句)聲明名為 ApplyFormat 的過程。每當調(diào)用或運行ApplyFormat過程時,執(zhí)行包含在 Publ
13、ic Sub 和 End Sub 語句中的所有語句。 接著,Const 語句聲明常數(shù) limit,指定 Integer 數(shù)據(jù)類型和初值33。 最后,Dim 語句聲明變量 myWidget。在此示例中數(shù)據(jù)類型是對象,即Widget對象。可以將變量聲明為在使用的應用程序中公開的任何對象。Dim 語句是用于聲明變量的一種語句類型。聲明中使用的其他關(guān)鍵字有 ReDim、Static、Public、Private、Protected 和 Friend。 聲明語句保留創(chuàng)建變量所需的內(nèi)存,但不顯式創(chuàng)建它。 如果變量是對象變量,則聲明它時可以使用 New 關(guān)鍵字顯式創(chuàng)建其類的實例,如: Dim x As Ne
14、w System.Windows.Forms.Form() 3.2.2 賦值語句 賦值語句執(zhí)行賦值運算。簡單的賦值運算包括將運算符右側(cè)表達式的值賦予左側(cè)的變量或?qū)ο蟮膶傩浴_\算符右側(cè)可以是任何表達式(包括常量、變量、函數(shù)等)。 1) 格式 名稱 endow 表達式 2) 說明 - 名稱:變量或?qū)傩缘拿Q。 endow:賦值運算符如 =、=、&=、+= 等,請參見2.6.1節(jié)。 -表達式:可以是算術(shù)、字符串、日期、關(guān)系或邏輯表達式。,先計算右邊表達式的值,然后將其賦給左邊的變量或?qū)ο蟮膶傩灾?。如?Dim x As String x = Con & cat & enation x=Concate
15、nation 使用 Boolean 文本或 Boolean 表達式作為右側(cè)參數(shù),還可以賦予Boolean變量的值: Dim x As Boolean= Truex = 12 234 x = Falsex x = 45 678 Or 45 12 x = True 運算符左側(cè)的參數(shù)還可以是屬性。如設置文本框的文本屬性的值: MyTextBox.Text = This & is a & String MyTextBox.Text = This is a String 調(diào)試用語句 3.2.2 注釋語句(Rem) 格式:Rem注釋內(nèi)容 或 注釋內(nèi)容 可以將 Rem 語句單獨放在一行,也可以將其放在另一語
16、句后的行上。Rem 語句必須是該行上最后的語句。如果它跟在另一語句后面,則REM與該語句間必須有一個空格。,一般都使用單引號 ( ) 替代 Rem。無論注釋是跟在同一行上的另一語句后面,還是單獨在一行,都可以這樣做。 源代碼并非始終一目了然,即使對于編寫它的程序員來說也是如此。因此,為了幫助說明其代碼,大部分程序員大量使用嵌入的注釋。代碼中的注釋可以為以后閱讀或使用某過程或特定指令的任何人員解釋該過程或指令。但是,Visual Basic在運行過程時忽略注釋。 2 暫停語句(Stop) Stop語句提供了一種以編程方式設置斷點的替換方法。當調(diào)試器遇到Stop語句時,它將中斷程序的執(zhí)行而進入中斷
17、模式。 格式:Stop 程序停止執(zhí)行,不釋放程序占用的內(nèi)存,進入中斷模式。此時,可以檢查各變量的值。(系統(tǒng)將自動打開立即窗口)可以將Stop語句放在過程的任何地方以中止執(zhí)行。使用Stop 語句類似于在代碼中設置斷點。與End語句不同,它不關(guān)閉任何文件或清除任何變量,除非在已編譯的可執(zhí)行(.exe)文件中遇到。 在應用程序的發(fā)布版本中應移除所有的 Stop 語句。,3 結(jié)束語句(End) 結(jié)束語句(End):立即終止執(zhí)行,使其他程序所持有的對象引用無效。 格式:End End語句提供一種強迫程序停止的方法,可以放在過程的任何位置以結(jié)束代碼執(zhí)行,關(guān)閉用Open語句打開的文件,并且清除變量,釋放內(nèi)存
18、。End 語句調(diào)用 System 命名空間中的Environment類的Exit方法。 System.Environment.Exit要求使用者具有SecurityPermiss- ionFlag.UnmanagedCode 權(quán)限。如果使用者沒有該權(quán)限,則會出現(xiàn) SecurityException 錯誤。 當執(zhí)行時,End 語句清除模塊級和類級的所有變量以及所有模塊中的全部靜態(tài)局部變量。 當與其他關(guān)鍵字一起使用時,End 指示過程或塊的定義的結(jié)尾。如:End Class、End Enum、End Function、End If、End Structure、End Sub、End Get、End
19、 Interface、End Module、End Namespace、End Property、End Select、End Set、End SyncLock、End Try、End While、End With。 除了前面介紹的這些語句之外,Visual Basic還有流控制語句及其他語句。 4 Debug.Print 方法 此方法是.NET Framework 2.0 版新增的,可將字符串信息顯示在輸出窗口。,用法:Dim message As String Debug.Print(message) 5 Console.Write 方法 將指定的數(shù)據(jù)寫入標準輸出流。 用法:Dim mes
20、sage As String Console.Write (message) 或 Dim format As String Dim arg As Object Console.Write(format, arg) format參數(shù)由零或多個文本序列與零或多個索引占位符混合組成,其中索引占位符稱為“格式項”,它們與此方法的參數(shù)列表中的對象相對應。格式設置過程將每個格式項替換為對應對象的值的文本表示形式。 arg參數(shù)是要使用 format 寫入標準輸出流的對象、對象數(shù)組及各種變量的文本表示形式,可參見表3-1所示。 6 Console.WriteLine 方法 Console.WriteLine
21、方法與Console.Write方法一樣,將指定的數(shù)據(jù)寫入標準輸出流,但Console.WriteLine 方法后要跟當前行結(jié)束符,即要換行。,以下為Console.WriteLine方法的用法示例: Private Sub Button1_Click() Static X, Y As Integer Y=1 Y=Y + 5 X=5 + X Console.WriteLine( “X=0;Y= 1”,X,Y) End Sub 3.2.4 語句的書寫規(guī)則 1) 一行中有多條語句 在一行中可以有多條語句,語句之間用冒號(:)字符分隔。例如: Dim MyString As String = Hel
22、lo World : MsgBox(MyString) 雖然這種形式的語法偶爾帶來方便,但是它使代碼難以閱讀和維護。因此,建議讀者保持一行一條語句。 2) 跨多行繼續(xù)一條語句 通常一行容納一條語句,但當一行中容納不下時,可以使用行繼續(xù)符在下一行繼續(xù)一條長語句,行繼續(xù)符由一個空格及一個下劃線字符“_”組成。在下面的示例中,MsgBox 可執(zhí)行語句連續(xù)跨兩行:,Public Sub DemoBox() This procedure displays a message. Dim myVar As String myVar = John MsgBox(Hello & myVar & _ . How
23、are you?) End Sub 3 檢查編譯錯誤 鍵入一行代碼后,如果該行顯示有藍色波浪下劃線(也可能顯示錯誤信息),則該語句中有語法錯誤。必須找出語句中有什么錯誤(例如通過查找任務列表,或通過懸停在錯誤上并閱讀幫助文本),然后改正它。在修復代碼中的所有語法錯誤之前,程序無法正確地進行編譯。,3.3 數(shù)據(jù)輸入與輸出,一個應用程序通常可分為:輸入、處理和輸出三部分。Visual Basic的輸入輸出有著十分豐富的內(nèi)容和形式,它提供了多種手段,并可通過各種控件及方法實現(xiàn)輸入輸出操作,使輸入輸出更加靈活、多樣、方便和形象直觀。程序通過輸入操作接收數(shù)據(jù),然后程序代碼對輸入的數(shù)據(jù)進行處理,最后將處理
24、完的數(shù)據(jù)以完整有效的方式提供給用戶,也就是輸出。 3.3.1使用標簽(Label)控件輸出 Label 控件用于顯示用戶不能編輯的文本(Text屬性)及圖像(Image屬性),不能接收焦點,一般用于顯示描述性信息。例如,如果應用程序需要幾分鐘時間處理更改,則可以在Label中顯示處理狀態(tài)的消息。 TextAlign 屬性用于設置文本在標簽內(nèi)的對齊方式,可通過設置BorderStyle、BackColor、ForeColor和Font等屬性來改變Label的邊界、背景顏色、字體顏色及字體。 默認前提下AutoSize為False,即Label的邊界不變,Text的內(nèi)容超出邊界時自動換行。為使控件
25、能夠自動調(diào)整寬度,必須將AutoSize屬性設置為True,這樣Label的邊界可水平擴充以適應Text屬性內(nèi)容。此外,還有一些定位屬性等。,例3-1 將標簽的信息“程序設計”顯示在窗體與命令按鈕的正中央,如圖3-1所示。圖3-1 輸出字符串對中 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim TextW, TextH As Single Label1.Text = 程序設計 TextW =(Me.Size.Width
26、- Label1.Size.Width) / 2 TextH =(Button1.Top - Label1.Size.Height) / 2 Label1.Left = TextW Label1.Top = TextH End Sub 輸出文本位置的定位點,在文本的左上角。文本左上角的X坐標值是窗體的寬度(Me.Size.Width)減去文本寬度Label1.Size.Width的一半,即TextW。為了使Label1中的文本能正好顯示在Label1框內(nèi),可將AutoSize屬性設置為True。Y坐標值是Button1的Y軸定位坐標(Button1.Top)減去文本高度(Label1.Size
27、.Height)的一半,即TextH,如圖3-1所示。,3.3.2 使用文本框(TextBox)控件 TextBox控件用于獲取用戶輸入或顯示文本。TextBox 控件通常用于可編輯文本,不過也可使其成為只讀控件。TextBox可以顯示多行文本,對文本換行使其符合控件的大小以及添加基本的格式設置。常用屬性如表3-2所示。若要顯示多種類型的帶格式文本,請使用 RichTextBox 控件。,控件顯示的文本包含在 Text 屬性中。默認情況下,最多可在一個文本框中輸入2048個字符。如果將MultiLine屬性設置為 True,則最多可輸入32KB的文本。Text 屬性可以在設計時使用【屬性】窗口
28、設置,在運行時通過代碼設置。 注意:如果MultiLine屬性被設為True時,PassWordChar屬性將不起作用。 密碼框是一種 Windows 窗體文本框,它在用戶鍵入字符串時顯示占位符。,1 創(chuàng)建密碼文本框 1) 將 TextBox 控件的 PasswordChar 屬性設置為某個特定字符 PasswordChar 屬性指定在文本框中顯示的字符。例如,如果希望在密碼框中顯示星號,則請在【屬性】窗口中將 PasswordChar 屬性指定為 “*”。然后,無論用戶在文本框中鍵入什么字符,都顯示為星號(“*”)。 2) 設置 MaxLength 屬性(可選) 此屬性確定可在文本框中鍵入多
29、少字符。如果超過了最大長度,系統(tǒng)會發(fā)出聲響,且文本框不再接受任何字符。 下面的代碼將初始化一個文本框,此文本框接受最長可達10個字符的字符串,并顯示星號來替代字符串。Password過程不會自動執(zhí)行,而需進行調(diào)用。 用戶輸入密碼時,界面上顯示為星號,但輸入的文本并未以任何方式進行加密,所以應該像處理其他機密數(shù)據(jù)一樣處理。 2 TextBox 控件中的插入點 當 Windows 窗體 TextBox 控件最初收到焦點時,文本框內(nèi)的默認插入位置是在任何現(xiàn)有文本的左邊。用戶可以使用鍵盤或鼠標來移動插入點。如果文本框失去焦點而后又再次獲得焦點,則插入點為用戶上一次放置的位置。,在某些情況下,此行為可能
30、給用戶帶來不便。在字處理應用程序中,用戶可能希望新字符顯示在任何現(xiàn)有文本的后面。在數(shù)據(jù)輸入應用程序中,用戶可能希望新字符替換任何現(xiàn)有項。SelectionStart 屬性和 SelectionLength 屬性使您可以修改插入點行為,使之適合您的用途。 - SelectionStart = 0 及SelectionLength = 0 時,插入點在第一個字符的左邊。 - SelectionStart = 0及SelectionLength = Len(TextBox1.Text)選中文本框中的所有文本。 3.3.3 使用圖片框(PictureBox)控件輸入/輸出圖片 1 PictureBox
31、 控件支持的圖片文件格式 使用PictureBox 控件用于顯示位圖、GIF、JPEG、圖元文件或圖標格式的圖片。所顯示的圖片由 Image 屬性確定,該屬性可在運行時或設計時設置。 使用PictureBox 控件,可以在設計時將 Image 屬性設置為有效圖片,從而在窗體加載后顯示圖片,可接受的文件類型及擴展名如表3-3所示。,2 安裝 Visual Studio 2005 圖像庫 Visual Studio 2005 圖像庫由1000 多幅圖像組成,包括出現(xiàn)在Microsoft Windows、 Microsoft Office、Microsoft Visual Studio 和其他 Mi
32、crosoft 軟件中的圖像。 該圖像庫包括三種主要類別的圖像:動畫、位圖和圖標。每個主要區(qū)域都包含一個自述文件 *readme.htm。這些自述文件提供了有關(guān)在應用程序中合理使用這些圖像的信息。 在 Visual Studio 的安裝過程中,該圖像庫被作為 VS2005ImageLibrary.zip 壓縮文件復制到計算機中。此文件的默認目錄是: .Program FilesMicrosoft Visual Studio8Common7VS2005ImageLibrary。 若要訪問圖像庫中的文件,必須將文件從 VS2005ImageLibrary.zip 文件中提取出來。,3 在設計時加載
33、圖片 設計時通過將 Image 屬性為PictureBox 控件設置一個有效圖片,從而在窗體上加載和顯示圖片。具體步驟如下: (1)在窗體上繪制 PictureBox 控件。 (2)在“屬性”窗口中,選擇 Image 屬性,然后單擊省略號按鈕以顯示“打開”對話框。 (3)如果要查找特定文件類型(例如 .ico 文件),請在“文件類型”框中選擇該類型。 (4)選擇要顯示的文件。 4 在運行時設置圖片 可以在編程中設置 PictureBox 控件顯示的圖像。在下面的示例中,圖像位置的路徑設置是E盤的“圖像”文件夾,文件包括face00.ico、face01.ico、face02.ico、face0
34、3.ico 4個文件。下面的示例假定窗體已添加了 PictureBox 控件和Button控件。 1)使用 Image 類的 FromFile 方法設置 Image 屬性 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Static i As Integer i = (i + 1) Mod 4 Me.PictureBox1.Image = Image.FromFile(E:圖像 & face0 & i.ToString & .i
35、co) End Sub,2) 使用 Bitmap 類設置 Image 屬性 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Static i As Integer i = (i + 1) Mod 4 PictureBox1.Image = New System.Drawing.Bitmap (E:圖像 & face0 & i.ToString & .ico) End Sub 運行程序后,每按一次Button1按鈕,改變顯示的圖片
36、,如圖3-2所示。,5 在設計時清除圖片 在【屬性】窗口中,選擇Image屬性,并右擊出現(xiàn)在圖像對象名稱左邊的小縮略圖圖像,在彈出的菜單中選擇“重置”。 程序中可將圖像位置的路徑設置空字符串即可。 6 PictureBox 控件的 SizeMode 屬性 - SizeMode屬性可以設置為 Normal(默認)、AutoSize、CenterImage 或 StretchImage 4種屬性值: - Normal:表示圖像放置在控件的左上角。如果圖像大于控件,則剪裁圖像的右下邊緣。 - CenterImage:表示圖像在控件內(nèi)居中。如果圖像大于控件,則剪裁圖片的外邊緣。 - AutoSize:
37、表示將控件的大小調(diào)整為圖像的大小。 - StretchImage:表示將圖像的大小調(diào)整到控件的大小。 - Zoom:表示將圖像大小按其原有的大小比例被增加或減小。 3.3.4 使用焦點 當對象具有焦點(Focus)時才能響應用戶的輸入,如文本框具有焦點時,用戶輸入的信息才會顯示在文本框中。,在運行模式下,具有焦點的對象通常會突出顯示,如某窗體具有焦點時,該窗體的標題欄呈深藍色顯示。文本框具有焦點時,該文本框中出現(xiàn)插入點光標。Button按鈕具有焦點時,該按鈕上帶有一個“虛線框”標記等。 僅當控件的Visible和Enabled屬性被設置為真(True)時,控件才能接收焦點。某些控件不具有焦點,
38、從這些控件派生的控件也不具有焦點,如:Panel、GroupBox、PictureBox、ProgressBar、Splitter、Label等。 當控件獲得焦點時,會引發(fā)GotFocus事件,而失去焦點時,將會引發(fā)LostFocus事件。 可以用控件的Focus方法在代碼中設置焦點,如將焦點放到文本框TextBox1上,可用: TextBoxl.Focus() 在程序運行的時候,用戶可以按下列方法改變焦點: (1)單擊對象。 (2)按快捷鍵【Tab】在當前窗體的各對象之間按TabIndex屬性值的順序移動焦點。 (3)按熱鍵選擇對象。 TabIndex屬性決定控件接收焦點的順序,TabSto
39、p屬性決定焦點是否能夠停留在該控件上。 當在窗體上畫出第1個控件時,VB.NET自動分配給控件的TabIndex屬性默認值為0,第2個控件的TabIndex屬性默認值為1,依此類推。通過改變控件的TabIndex屬性值,可以改變默認的焦點移動順序。,如果控件的TabStop屬性設置為假(False),則在運行中按快捷鍵【Tab】選擇控件時,將跳過該控件,并按焦點移動順序把焦點移到下一個控件上。 3.3.5 使用分組框(GroupBox)控件 Windows 窗體的GroupBox 控件顯示圍繞一組控件的框架(帶或不帶標題)。GroupBox是一種容器類控件,對窗體上的控件進行邏輯分組。在Gro
40、upBox控件內(nèi)部的控件可以隨GroupBox一起移動,并且受到GroupBox控件某些屬性(Visible、Enabled)的控制。圖3-3 GroupBox邏輯分組 開發(fā)應用程序時一個常見的任務是將控件添加到窗體上的任何容器控件中,在VB.NET中,F(xiàn)orm、PictureBox 、Panel(面板)、GroupBox 都是控件。在設計時,可以直接將控件拖到Panel或GroupBox上。 GroupBox 控件可以美化Windows窗體界面。此外,它的另一個典型用途是對 RadioButton(單選按鈕)控件的進行邏輯分組。如果有2個GroupBox,每個GroupBox都包含多個單選按
41、鈕,每組中的單選按鈕(RadioButton)都互相排斥,則每組設置一個選項值,如圖3-3所示。 程序中可通過使用 Controls的 Add 方法,可將控件添加到GroupBox中。 GroupBox 本身不能被選中或者接收焦點,但GroupBox控件中所包含的控件可以被選中或接收焦點。,3.3.6 使用面板(Panel)控件 與GroupBox 控件一樣,Panel 控件可對窗體上的控件進行邏輯分組。但Panel 控件沒有顯示標題,而且還可以有滾動條。 Windows 窗體 Panel 控件既可以顯示背景顏色又可以顯示背景圖像。BackColor 屬性為所包含的控件(如標簽和單選按鈕)設置
42、背景顏色。如果未設置 BackgroundImage 屬性,則 BackColor 選項將填充整個面板。如果設置了 BackgroundImage 屬性,則該圖像將顯示在所包含的控件后。,3.4 使用對話框,3.4.1 Windows窗體中的對話框 對話框用于與用戶進行交互。從另一個角度來說,對話框是一個窗體,該窗體的屬性FormBorderStyle設置為 FixedDialog。因此,可以使用 Windows 窗體設計器構(gòu)造自己的自定義對話框??梢酝ㄟ^添加控件(例如 Label、TextBox 和 Button)來自定義對話框以滿足您的特定需要。.NET Framework 也包括預定義對
43、話框(如“打開文件”和消息框),可以在自己的應用程序中直接使用。 3.4.2 顯示有模式和無模式 Windows 窗體 窗體和對話框要么是有模式的,要么是無模式的。有模式窗體或?qū)υ捒虮仨氷P(guān)閉或隱藏,才能繼續(xù)使用應用程序的其余部分。 根據(jù)上述說明,認為顯示重要消息的對話框應始終是有模式的。模式對話框的一個示例是 Visual Studio 中的“關(guān)于”對話框。將窗體顯示為有模式對話框,可用 ShowDialog 方法,如: Dim frmAbout as New Form() frmAbout.ShowDialog(),無模式窗體允許在窗體之間變換焦點,而不必關(guān)閉初始窗體。因此,無模式窗體的編程
44、難度更大,因為用戶訪問這些窗體的順序可能無法預知,無論用戶執(zhí)行什么操作,都必須使該應用程序的狀態(tài)保持一致。工具窗口經(jīng)常以無模式方式顯示。無模式對話框的一個示例是 Visual Studio 中可從“編輯”菜單訪問的“查找”對話框。使用無模式窗體可顯示常用的命令或信息。將窗體顯示為無模式對話框,可用 Show 方法,如: Dim frmAbout as New Form() frmAbout.Show () 3.4.3 顯示信息信息對話框函數(shù)(MsgBox) MsgBox函數(shù)的功能是通過對話框向用戶傳送信息,用戶根據(jù)在對話框中顯示的信息,單擊適當?shù)陌粹o,系統(tǒng)將返回一個整數(shù),指示用戶單擊了哪個按鈕
45、(如表3-5所示),以便決定程序的流向。語法格式 MsgBox(Prompt ,Buttons, Title) 1) 參數(shù)說明 - Prompt:必選項。以消息形式顯示在對話框中的 String 表達式。如果 Prompt 中包含多個行,則可在各行之間用回車換行符(Chr(13) & Chr(10)分隔各行。,- Buttons:可選項。數(shù)值表達式,它如表3-4所示中五類枚舉數(shù)值的總和。指定顯示的按鈕數(shù)目,按鈕類型,使用的圖標樣式,默認按鈕的標識以及消息框的樣式。如果省略Buttons,則默認值為零。 - Title:可選項。顯示在對話框標題欄中的 String 表達式。如果省略 Title,
46、則將應用程序名放在標題欄中。 Buttons參數(shù)值如表3-4所示中5類數(shù)值組成,常用的是前3類。其組成原則是:從每一類中選擇一個值,把這幾個值加在一起,不同的組合會得到不同的結(jié)果。例如:從“按鈕類別”中選值1、從“圖標類型”中選值64、從“默認按鈕”中選值0,然后,將這3個加起來就得到參數(shù)Buttons的值為65=1+64+0,對話框內(nèi)顯示“確定”、“取消”按鈕和“暫?!眻D標,默認按鈕為“確定”。,下面的程序執(zhí)行時,界面情況如圖3-4所示。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Ev
47、entArgs) Handles Button1.Click Dim x% x% = MsgBox(Buttons=65 的樣式, 65, Buttons 參數(shù)的使用) End Sub,在VB中,每種數(shù)值都有相應的符號常量,其作用與數(shù)值相同。使用符號常量可以提高程序的可讀性。,2) 函數(shù)返回值 MsgBox函數(shù)返回值是一個整數(shù),這個整數(shù)與程序運行時所選擇的按鈕有關(guān)。MsgBox函數(shù)所顯示的對話框共有7種按鈕,函數(shù)的返回值與這7種按鈕相對應,如表3-5所示。,3.4.4 消息提示消息框類(MessageBox) MessageBox是一個預定義對話框,它將與應用程序相關(guān)的信息顯示給用戶。顯示可包
48、含文本、按鈕和符號(通知并提示用戶)的消息框。MessageBox 類的 Show 方法比MsgBox()函數(shù)的功能更豐富,除了MsgBox()已有的功能外,還可指定對象的前面顯示,使用指定的幫助文件顯示等MsgBox()沒有的功能。MessageBox 類的Show方法共有21種調(diào)用格式,具體可參照Visual Studio.NET的MSDN。在Visual Basic中,仍然支持使用 MsgBox() 創(chuàng)建要顯示給用戶的消息框,不過Microsoft建議首選方法還是使用MessageBox.Show()。 如使用指定的幫助文件顯示一個具有指定文本、標題、按鈕、圖標、默認按鈕、枚舉選項和“幫
49、助”按鈕的消息框的MessageBox.Show()語法格式如下: Public Shared Function Show ( text As String, _ caption As String, _ buttons As MessageBoxButtons, _ icon As MessageBoxIcon, _ defaultButton As MessageBoxDefaultButton, _,options As MessageBoxOptions, _ helpFilePath As String _ ) As DialogResult MessageBox 是一個模式窗體,用
50、MessageBox 類的 Show 方法可在消息框中向用戶顯示信息,也可接受輸入,通過接收到的輸入來確定用戶所做的選擇。Show方法返回的值是整數(shù)。 3.4.5 輸入數(shù)據(jù)輸入框函數(shù)(InputBox) 數(shù)據(jù)輸入函數(shù)InputBox可以產(chǎn)生一個對話框作為界面,等待用戶輸入并返回所輸入的內(nèi)容。用戶輸入的數(shù)據(jù)作為InputBox的函數(shù)值,是以字符串類型給出。 1) 語法格式 PublicFunctionInputBox( ByValPromptAsString, _ OptionalByValTitleAsString=, _ OptionalByValDefaultResponseAsStrin
51、g=, _ OptionalByValXPosAsInteger=-1, _ OptionalByValYPosAsInteger= -1 _ )AsString,2) 參數(shù)說明 - Prompt:必選項。以消息形式顯示在對話框中的String表達式。如果Prompt中包含多個行,則可在各行之間用回車換行符(Chr(13)& Chr(10)分隔各行。 - Title:可選項。顯示在對話框標題欄中的 String 表達式。如果省略 Title,則將應用程序名放在標題欄中。 - DefaultResponse:可選項。顯示在文本框中的String表達式,在沒有提供其他輸入時作為默認響應。如果省略D
52、efaultResponse,則顯示的文本框為空。 - XPos:可選項。數(shù)值表達式,以像素為單位指定對話框的左邊與屏幕左邊的距離。如省略 XPos,對話框?qū)⑺骄又小?- YPos:可選項。數(shù)值表達式,以像素為單位指定對話框的上邊與屏幕上邊的距離。如果省略YPos,則對話框位于在屏幕垂直方向距下邊緣大約三分之一處。 如果用戶單擊“取消”按鈕,則返回一個零長度字符串。 若要除第一個參數(shù)外還指定其他參數(shù),必須在表達式中使用InputBox函數(shù)。如果省略任何位置參數(shù),則必須保留相應的逗號分隔符。,例3-2 編寫程序用MsgBox函數(shù)判斷程序是否繼續(xù)執(zhí)行。 Private Sub Button1_C
53、lick( _ ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim prompt, Title, dat, x As String prompt = 請輸入一個整數(shù) Title = InputBox and MsgBox MK: dat = InputBox(prompt, Title, 5) prompt = 您輸入的數(shù)據(jù)是: + dat + ,請確認此數(shù)據(jù)是否正確 x = MsgBox(prompt, 19, Title) If x = 7 Then Console.Wr
54、iteLine(請重新輸入) : GoTo MK 用戶按了“否”鍵 If x = 2 Then End 用戶按了“取消”鍵 Console.WriteLine(dat * dat) End Sub,上述事件過程首先產(chǎn)生一個輸入對話框,如圖3-5所示。該對話框提示輸入一個整數(shù),輸入的默認值為5。然后產(chǎn)生一個MsgBox對話框,如圖3-6所示。該對話框中有3個按鈕,即是(Yes)、否(No)和取消(Cancel)。如果選擇“是”,則返回值為6,在窗體上打印輸入數(shù)據(jù)的平方;如果選擇“否”,則返回值為7,在窗體上打印“請重新輸入”,并使程序自動轉(zhuǎn)到輸入對話框執(zhí)行;如果選擇“取消”,則返回值為2,結(jié)束程
55、序的運行。,3.4.6 通用對話框 應用程序中常常需要打開和保存文件、選擇顏色和字體、打印機等操作,作為Windows的資源,系統(tǒng)已經(jīng)將這些功能定義為相應的對話框組件及類,供用戶使用。在VB.NET 2005中,對話框組件在工具箱的對話框選項卡及打印選項卡中。使用對話框前,需要將對應的對話框組件加入到設計窗體中,再編寫代碼。對話框組件添加到窗體后,它出現(xiàn)在 Windows 窗體設計器底部的欄中。根據(jù)使用方式和性質(zhì)通用對話框有以下8種類型:打開文件對話框(OpenFileDialog)、文件保存對話框(SaveFileDialog)、字體選擇對話框(FontDialog)、顏色選擇對話框(Col
56、orDialog)、打印機設置對話框(PrintDialog)、打印預覽對話框(Print- PreviewDialog)、頁面設置對話框(PageSetupDialog)、文件夾瀏覽對話框(FolderBrowser- Dialog)。至于這8個對話框的在Windows系統(tǒng)的表現(xiàn)形式和所起的具體作用,在此不再逐步介紹了。,使用通用對話框類時,首先要明確的是VB .NET語言本身并沒有提供處理對話框的功能,所以VB.NET處理對話框類就必須借助“外力”,而這種“外力”就是 .Net 框架提供給所有開發(fā).Net 平臺應用程序的一個公用的類庫.Net FrameWork SDK。上述對話框在.Ne
57、t FrameWork SDK的System.Windows.Forms命名空間中被定義。VB.NET就是使用這些類來處理與對話框相關(guān)的操作的。 VB.NET在使用上述類來處理Windows系統(tǒng)常見的對話框時,其主要的步驟如下: (1)實例化類,即:創(chuàng)建上述類的實例。 (2)初始化創(chuàng)建的實例,并顯示。 (3)處理對話框返回的數(shù)據(jù)。 下面介紹上述前5個類的屬性。即: OpenFileDialog、SaveFileDialog、FontDialog、ColorDialog、PrintDialog這5個類在結(jié)構(gòu)上有相似之處,表現(xiàn)在某些類有很多名稱、作用相同的組成成員。另外這5個類的方法結(jié)構(gòu)都比較簡單
58、,其中最為重要的方法是“ShowDialog”,其作用都是顯示對話框。,1 打開文件對話框(OpenFileDialog) 在VB.NET中,用戶可以使用 OpenFileDialog瀏覽它們的計算機以及網(wǎng)絡中任何計算機上的文件夾,并選擇打開一個或多個文件。該對話框返回用戶在對話框中選定文件的路徑和名稱。 使用OpenFileDialog的 ShowDialog 方法顯示“打開文件”對話框: OpenFileDialog.ShowDialog() OpenFileDialog類的主要屬性如表3-6所示。,Filter屬性用來獲取或設置當前文件名篩選器字符串,該字符串決定對話框的“文件類型”或“
59、另存為文件類型”框中出現(xiàn)的選擇內(nèi)容,其一般格式為: 顯示信息1|文件擴展名1|顯示信息2|文件擴展名2| 屬性FilterIndex用于獲取或設置文件對話框中當前選定篩選器的索引。如FilterIndex=2表示“文件類型”框中顯示內(nèi)容的是“顯示信息2”,系統(tǒng)用“文件擴展名2”進行過濾。 通過下面的代碼,可以很容易了解OpenFileDialog 類各個屬性的用法。首先創(chuàng)建一個OpenFileDialog實例,并設定此實例的各個屬性值,來定制一個可以選擇多個文件的打開文件對話框,并且把使用此對話框選擇的多個文件名稱通過提示框顯示出來: Dim strFileName() As String 定義一個字符串數(shù)組 Dim OpenFileDialog1 As System.Windows.Forms.OpenFileDialog = New System
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GBT 20255.6-2008硬質(zhì)合金化學分析方法 火焰原子吸收光譜法 一般要求》專題研究報告深度
- 《GBT 9822-2008糧油檢驗 谷物不溶性膳食纖維的測定》專題研究報告
- 《FZT 72013-2022服用經(jīng)編間隔織物》專題研究報告
- 道路安全教育培訓計劃課件
- 道路安全培訓資格證課件
- 道路保潔安全培訓課件
- 2026年江蘇高考化學考試卷含答案
- 2026年福建漳州市高職單招數(shù)學試題及答案
- 2026年廣東汕尾市高職單招數(shù)學考試題庫(含答案)
- 迪士尼安全培訓內(nèi)容課件
- 消毒供應設施配置和醫(yī)療廢處置方案
- 醫(yī)學檢驗晉升個人簡歷
- 2025年國開思想道德與法治社會實踐報告6篇
- 瑞思邁無創(chuàng)呼吸機的應用
- 八年級美術(shù)上冊盛唐女性的生活教案省公開課一等獎新課獲獎課件
- 勞動能力鑒定(確認)申請表
- 施工工地門禁管理辦法
- 學校體育場施工安全管理措施
- 《第四紀地質(zhì)學與地貌學》課程筆記
- 現(xiàn)代農(nóng)業(yè)企業(yè)經(jīng)營管理
- 測繪公司日常管理制度
評論
0/150
提交評論