組件
當我們使用Visual Basic .Net
集成開發環境開發應用程式時,在從【
工具箱】的【Windows
窗體】選項卡中向Form1的設計窗體拖入一個TextBox組件的後,我們可能並沒有感覺到即使是這樣一個簡單的操作,Visual Basic .Net都做了很多幕後工作。主要工作和步驟如下:
1. 首先實例化System.Windows.Forms.TextBox類,並根據拖動到
窗體的位置和形狀分別設定TextBox實例的各個屬性。
2. 我們看到的設計
窗體,其實是Form1類的一個
實例,而Form1類首先是從System.Windows.Forms.Form類繼承而來,Form1類中的成員根據使用者往窗體中拖入的組件不同而不同。各個成員通過Add或AddRange方法加入到Form1中,這樣拖入的組件才能夠顯示在設計
窗體上。
以上這些都完全不同於以前Visual Basic。通過上述步驟, 我們不難得到TextBox組件和TextBox類之間的關係,TextBox組件是命名空間System.Windows.Forms中的TextBox類的實例,在從【
工具箱】的【Windows
窗體】選項卡中拖入窗體的任一組件,都是.Net框架類庫——.Net FrameWork SDK中封裝的某一個類的實例。通過上述步驟也不難看出,Visual Basic .Net的確才是真正的
面向對象(OOP)的開發語言。
成員
TextBox組件使用雖然比較簡單,但TextBox類的構成成員卻是非常的豐富。在一般性的編程中,主要涉及到三類:屬性、方法和事件。表01、表02和表03分別是TextBox類的常用屬性、方法和事件及其簡單說明。
屬性說明
AcceptsReturn 指示在多行TextBox組件中按ENTER鍵時,是在組件中創建一行新文本還是激活
窗體的
默認按鈕。
AcceptsTab 該值指示在
多行文本框組件中按TAB鍵時,是否在組件中鍵入一個TAB
字元,而不是按選項卡的順序將焦點移動到下一個組件。
AllowDrop 獲取或設定一個值,該值指示組件是否可以接受用戶拖放到它上面的數據。
Anchor 獲取或設定組件的哪些邊緣錨定到其容器邊緣。
BackColor 獲取或設定組件的背景色。
BackgroundImage 獲取或設定在組件中顯示的
背景圖像。
BorderStyle 獲取或設定
文本框組件的框線類型。
Bottom 獲取組件的下邊緣與其容器的工作區的上邊緣之間的距離。
CanFocus 獲取一個值,該值指示組件是否可以接收焦點。
CanSelect 獲取一個值,該值指示是否可以選中組件。
CanUndo 獲取一個值,該值指示用戶在
文本框組件中能否撤消前一操作。
CharacterCasing 獲取或設定TextBox組件是否在
字元鍵入時修改其大小寫格式。
ContextMenu 獲取或設定與組件關聯的
快捷選單。
Reated 獲取一個值,該值指示組件是否已經創建。
Cursor 獲取或設定當
滑鼠指針位於組件上時顯示的游標。
Dock 獲取或設定組件停靠到父容器的哪一個邊緣。
Enabled 獲取或設定一個值,該值指示組件是否可以對用戶互動作出回響。
Focused 獲取一個值,該值指示組件是否有輸入焦點。
ForeColor 獲取或設定組件的前景色。
MaxLength 獲取或設定用戶可以在
文本框組件中最多鍵入的字元數。
Multiline TRUE/FALSE,該值指示它是否為
多行文本框組件。
PasswordChar 獲取或設定
字元,該字元用於禁止單行
ScrollBars 獲取或設定哪些滾動條應出現在多行TextBox 組件中。
TextAlign 設定文本框內文本得對齊方式
TextLength 獲取組件中文本的長度。
表01:TextBox類的常用屬性及其說明
方法說明
AppendText 向
文本框的當前文本追加文本。
ClearUndo 從該文本框的撤消
緩衝區中清除關於最 近操作的信息。
DoDragDrop 開始拖放操作。
Focus 為控制項設定輸入焦點。
GetChildAtPoint 檢索位於指定坐標處的子控制項。
GetNextControl 按照子控制項的Tab鍵順序向前或向後檢索下一個控制項。
Hide 對用戶隱藏控制項。
PointToClient 將指定螢幕點的位置計算成工作區坐標。
PointToScreen 將指定工作區點的位置計算成螢幕坐標。
ResetBindings 將DataBindings屬性重置為其默認值。
Select 選擇控制項中的文本。
SelectNextControl 激活下一個控制項。
Show 向用戶顯示控制項。
SuspendLayout 臨時掛起控制項的布局邏輯。
表02:TextBox類的常用方法及其說明
事件說明
Click 在單擊文本框時發生。
CursorChanged 當 Cursor 屬性的值更改時發生。
DoubleClick 在雙擊控制項時發生。
DragDrop 在完成拖放操作時發生。
DragEnter 在將對象拖入控制項的邊界時發生。
DragLeave 在將對象拖出控制項的邊界時發生。
DragOver 在將對象拖到控制項的邊界上發生。
EnabledChanged Enabled 屬性值更改後發生。
Enter 進入控制項時發生。
GiveFeedback 在執行拖動操作期間發生。
GotFocus 在控制項接收焦點時發生。
KeyDown 在控制項有焦點的情況下按下鍵時發生。
KeyPress 在控制項有焦點的情況下按下鍵時發生。
KeyUp 在控制項有焦點的情況下釋放鍵時發生。
LostFocus 當控制項失去焦點時發生。
MouseEnter 在
滑鼠指針進入控制項時發生。
MouseHover 在
滑鼠指針懸停在控制項上時發生。
MouseLeave 在
滑鼠指針離開控制項時發生。
MouseMove 在
滑鼠指針移到控制項上時發生。
MouseWheel 在移動滑鼠輪並且控制項有焦點時發生。
Move 在移動控制項時發生。
Paint 在重繪控制項時發生。
Resize 在調整控制項大小時發生。
03:TextBox類的常用事件及其說明
當然TextBox類除了上述的屬性、方法和事件,還有很多屬性、方法和事件,和很多受保護的方法和受保護的屬性,由於它們使用的幾率較少和篇幅所限,就不能一一介紹了,感興趣的朋友可以參閱相關資料。
基本用法
由於TextBox類的成員實在太豐富,一個示例要想介紹上述所有的方法、屬性和事件是不可能。在下面介紹的示例中,將突出介紹在Visual Basic .Net
集成開發環境下通過對設定不同的屬性值實現三種常見的TextBox組件式樣,以及TextBox組件的方法的調用方法和在Visual Basic .Net集成開發環境中如何加入TextBox組件不同事件對應的處理代碼。讓各位更加熟悉TextBox類和Visual 開發環境。
下面是TextBox示例的具體實現步驟:
1. 啟動Visual Studio .Net。
2.
選擇選單【檔案】|【新建】|【項目】後,彈出【新建項目】對話框。
3. 將【項目類型】設定為【Visual Basic項目】。
4. 將【模板】設定為【Windows應用程式】。
5. 在【名稱】
文本框中輸入【TextBox組件】。
7. 把Visual Studio .Net的當前視窗切換到【Form1.vb(設計)】視窗,並從【
工具箱】中的【Windows
窗體組件】選項卡中往Form1窗體中拖入下列組件,並執行相應操作:
三個Label組件。
三個TextBox組件,分別為TextBox1、TextBox2和TextBox3。
8. 按照表04中數值來設定設定組件的主要屬性,請注意TextBox組件中的屬性設定值:
表04:【TextBox組件】項目
窗體中各組件的主要屬性設定數值表
按照表04各值設定後的TextBox組件三種常用的式樣也就產生了,具體如圖01所示:
圖01:程式設計時TextBox組件三種常見使用方法
這三種式樣就是單行的TextBox組件、多行的TextBox組件和用以輸入類似密碼數據的TextBox組件。
9. 為TextBox1組件添加事件和事件的處理代碼,此次添加的事件的名稱是Leave,當TextBox1組件失去焦點時觸發此事件。添加TextBox1組件的其他事件也可仿照下面的處理方法。下面是利用Visual Basic .Net在【TextBox組件】項目中添加TextBox1組件的Leave事件和添加Leave事件的處理代碼的具體步驟:
首先把Visual Basic .Net的當前視窗切換到Form1.vb的代碼編輯界面。然後在如圖02所示的選擇框中選擇TextBox2:
圖02:選擇TextBox組件
之後,在圖03所示的選擇框中選擇“Leave”:
圖03:選取Leave事件
在選擇“Leave”之後,Visual Basic .Net會自動在Form1.vb中產生TextBox1的Leave事件。
在Leave事件的事件處理代碼區添加下列代碼,下面代碼調用了TextBox2組件的“Clear”方法並且顯示一個TextBox1組件失去焦點的提示框:
TextBox2.Clear ( )
'清除TextBox2組件的顯示內容
MsgBox ( "失去焦點!")
'彈出提示框
至此【TextBox組件】項目的全部工作就完成了,圖04是
程式編譯後運行界面。
圖04:【TextBox項目】的運行界面
總結
雖然【TextBox組件】項目已經完成了,但是關於TextBox組件的話題遠沒有結束,通過表01、表02和表03以及那些沒有列出的屬性、方法和事件都無不表明,在Visual Basic .Net要精通一個在Visual Basic中非常基本的組件的使用方法都是很有難度的。本章雖然介紹的TextBox組件,其實對其他大多數組件也都具有參考價值,這些組件的常用屬性、方法和事件的意義也大都和TextBox組件差不多。